LPCSTR 是 const char * 简写形式是使用 typedef LPCSTR const char* 定义的。
unsigned char * 类型可以表示字节缓冲区,BYTE类型即是用typedef unsigned char BYTE定义的。
unsigned char与 char 都是一个字节,实际上没有本质区别可以进行强制转换;最大的区别就是 LPCSTR C风格的字符串以'/0'结尾,也就是说串中间不能有二进制的0或'/0',否则就会被截断。而unsigned char * 可以有二进制0或'/0'。所以LPCSTR 到unsigned char *不会有任何问题,而返过来可能就不行了。
CString str = "123";
unsigned char *p=(unsigned char*)str.GetBuffer(0);