写win32程序时,经常要用到MessageBox()函数,可是经常会遇到以上的错误。编辑器提示:error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [13]' to 'LPCWSTR'。
可以采用以下两种方式避免:
case WM_LBUTTONDOWN:
MessageBox(hWnd, L"单击鼠标左键",L"提示",0);
break;
case WM_LBUTTONDOWN:
MessageBox(hWnd, TEXT("单击鼠标左键"),TEXT("提示"),0);
break;
TEXT是
Windows程序设计中经常会遇到的一个宏,在winnt.h中定义。
TCHAR *ptch = TEXT("This is a const string.");
如果使用UNICODE
字符集, 则TEXT("This is a const string.")相当于L"This is a const string.", 如果使用ASCII集, 则上述字符串相当于“This is a const string.”。这样, 写的程序既可以使用UNICODE, 也可以使用ASCII, 增强了移植性。
本文介绍了在编写Win32程序时如何解决MessageBox函数在Unicode和ASCII字符集下出现的参数转换错误。提供了两种有效的方法,并解释了TEXT宏的作用。
595

被折叠的 条评论
为什么被折叠?



