gpt4 book ai didi

C++ 编译错误 : "cast from ' WCHAR *' to ' WORD' loses precision"

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:59:48 26 4
gpt4 key购买 nike

MyGUI 库。

源码中有一行:

mHandle = (size_t)::LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW));

mHandlesize_t

LoadCursor 返回 HCURSOR

错误:

D:\Dev\MyGUI_3.2.0_RC1\Common\Input\Win32\ResourceW32Pointer.cpp:48: error: cast
from 'WCHAR*' to 'WORD' loses precision

这是完整的来源:
www.pastebin.com/gzqLBFh9

MinGW 编译器。

有错误cast from 'CHAR*' to 'WORD' loses precision 并且selbie 给出了在此处添加宏的建议:Create window with WNDCLASSEX? [Cpp] .多亏了他 - 它消失了。

最佳答案

问题实际上在 MAKEINTRESOURCE(IDC_ARROW) 并且与 mHandle 的类型无关。 [旁白:我同意 mHandle 不应该是 size_t 但我认为这不是您当前的问题。]

由于 IDC_ARROW 被定义为 MAKEINTRESOURCE(32512),因此代码实际上应为

LoadCursor(NULL, IDC_ARROW)

而不是

LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW))

后面的代码失败是因为 IDC_ARROW 是 LPTSTRMAKEINTRESOURCE() 需要 WORD。这解释了您看到的错误消息。事实上IDC_ARROW已经是一个资源类型,不需要进一步处理。

同样,对 LoadCursor() 的所有其他调用都是错误的。

关于C++ 编译错误 : "cast from ' WCHAR *' to ' WORD' loses precision",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6835679/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com