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);
}
[解决办法]
你现在这个是错误。人家要你返回一个函数指针,而不是返回函数的调用结果。
再认真看看你的代码设计说明。
[解决办法]
兄弟太粗心了,都是类型转换出错.