【发布时间】:2011-07-26 19:48:49
【问题描述】:
MyGUI 库。
它的来源中有一行:
mHandle = (size_t)::LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW));
mHandle 是size_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]。多亏了他 - 它消失了。
【问题讨论】:
-
为什么不将
mHandle声明为HCURSOR类型?为什么需要投?如果你必须强制转换(我认为你不需要),你为什么要使用 C 强制转换?您的代码是 C++。 -
如果是我的代码,这将是一个很好的解决方案:) 但是通过更改其他库中的某些内容,会出现来自代码不同部分的许多错误:)。但如果没有其他方法,我会这样做。
-
如果不能改代码,那怎么修复bug呢?!
-
ResourceW32Pointer.h是您的代码还是第三方代码?我们能看到吗? -
size_t对mHandle来说是错误的。没有两种方法。 @Mark 是正确的。