signed char *',为什么?HGLOBAL hMem ; // 缓存区句柄(从位图对象转到内存)BYTE *hp; // 字节指针byte pointerhp = 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文件则出现上述错误... 【steedhorse】:C中对指针类型转换的检查没有C++那么严格。你一定要这样做的话,可以的C++中采用强制转换。【zzwh_0】:强制类型转换【huashizhixin】:(unsigned char *)加前面就可以了【akirya】:强制转换,因为语法检查严格了许多【MOOD】:上面改成:hp = (unsigned char *)hMem ;就不报错了