使用FindWindow()函数,编译器却告诉我不能将void*类型给long*
编号:QA004237
建立日期: 2001年6月5日 最后修改日期:2001年6月5日
所属类别:
应轶:
操作系统: windows
编程工具: C++ Builder
问题: 您好:
我是个新手,想编一个游戏修改器,可在使用FindWindow() API函数是遇到了些问题,它应该返回指定窗口的句柄,可我在C++ Builder 5中想将该句柄给long* gamehwnd变量时,编译器却告诉我不能将void*类型给long*,FindWindow()怎么可能是void类型?请问gamehwnd变量应该定义成什么类型才能得到FindWindow()传回的句柄?下面是当时的代码和错误信息:
unsigned long* gamehwnd=FindWindow("gens",NULL);
[C++ Error] las.cpp(23): E2034 Cannot convert 'void *' to 'unsigned long *'
希望您能抽时间回答一下,谢谢!
回答:
我不清楚你为什么要把句柄定义为unsigned long*,这看上去古怪。句柄是HWND,实际上的确是void *,它是一个指针,指向Windows内部的一个数据结构,但这个结构是不公开的,你无法直接访问其内容。你只需要把unsigned long*改为HWND就可以了。
此问题由李海回答。
| |
|
|
| |
|
|