首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c文件中正确,cpp文件中则出错:cannot convert from 'void *' to 'unsigned char *',为什么?解决方法

2012-03-22 
c文件中正确,cpp文件中则出错:cannot convert from void * to unsigned char *,为什么?HGLOBALhMem//

c文件中正确,cpp文件中则出错:cannot convert from 'void *' to 'unsigned char *',为什么?
HGLOBAL                     hMem   ;                     //   缓存区句柄(从位图对象转到内存)
BYTE                           *hp;                         //   字节指针byte   pointer

hp   =   hMem   ;

VC编译时提示:
e:\编程\编程工作区\vc++\截屏\catscreen\capandsave.h(123)   :   error   C2440:   '= '   :   cannot   convert   from   'void   * '   to   'unsigned   char   * '
                Conversion   from   'void* '   to   pointer   to   non- 'void '   requires   an   explicit   cast

但如果是.C文件则没有关系,能顺利通过,如果是.cpp文件则出现上述错误...

[解决办法]
C中对指针类型转换的检查没有C++那么严格。

你一定要这样做的话,可以的C++中采用强制转换。
[解决办法]
强制类型转换
[解决办法]
(unsigned char *)加前面就可以了
[解决办法]
强制转换,因为语法检查严格了许多
[解决办法]

LRESULT CALLBACK HookProc(int code, WPARAM wParam, LPARAM lParam)
{
。。。。。
。。。。。

return CallNextHookEx(g_hHook, code, wParam, lParam);
}
[解决办法]
你现在这个是错误。人家要你返回一个函数指针,而不是返回函数的调用结果。
再认真看看你的代码设计说明。
[解决办法]
兄弟太粗心了,都是类型转换出错.

热点排行