LPCWSTR是一个指向unicode编码字符串的32位
指针,所指向字符串是wchar型,而不是char型。
An LPCWSTR is a 32-bit pointer to a constant string of 16-bit Unicode Charactor, which may be null-terminated.
因为在VS2005以后,编码方式默认为Unicode,部分函数在使用时默认调用Unicode方式(函数名+W,exp:MessageBox+W=MessageBoxW),而非ANSI方式(函数名+A,exp:MessageBox+A=MessageBoxA)。
上述声明的意思是,在unicode编码下MessageBox被编译为MessageBoxW,否则就编译为MessageBoxA。而两者的区别则看函数声明中参数2、3就可以明白了。
如果遇到参数错误(cannot convert parameter * from 'const char [**]' to 'LPCWSTR'),可以考虑察看声明,如果有ANSI方式的只要在函数后面加个A就可以了,或者在定义参数时把char*改为WCHAR*。
如果是混合使用的,那可以考虑转化,方法很多,比如使用TEXT()对
字符串常量进行转化。