我正在使用Visual Studio 2013上的Win32应用程序构建一个程序.从我读过的教程中,我知道以下代码是正确的,但我不知道在哪里更改参数类型以阅读以下内容:
case WM_CREATE:
{
hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "Edit", "",
WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_AUTOHSCROLL |
ES_AUTOVSCROLL, 50, 100, 300, 300, hWnd, (HMENU)IDC_EDIT_BOX,
NULL, NULL);
Run Code Online (Sandbox Code Playgroud)
编译器突出显示"编辑"并给我这个错误:
错误1错误C2664:'HWND CreateWindowExW(DWORD,LPCWSTR,LPCWSTR,DWORD,int,int,int,int,HWND,HMENU,HINSTANCE,LPVOID)':无法将参数2从'const char [5]'转换为'LPCWSTR "
您正在使用已UNICODE定义的进行编译.这意味着它CreateWindowEx是CreateWindowExW宽字符版本的别名.或者:
CreateWindowExA,或我个人建议选项1.您的代码将成为:
CreateWindowEx(WS_EX_CLIENTEDGE, L"Edit", L"",
WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_AUTOHSCROLL | ES_AUTOVSCROLL,
50, 100, 300, 300, hWnd, (HMENU)IDC_EDIT_BOX, NULL, NULL);
Run Code Online (Sandbox Code Playgroud)
L字符串文字的前缀用于指定宽字符文字.