热情软件屋

 

使用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就可以了。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio