给定一条消息:

char *appStrt = "Application has already been started in a different window.";


我正在尝试在以下功能中使用它:

MessageBox(NULL, appStrt, // (LPCTSTR) appStrt cast doesn't work here
           appRun,
           MB_ICONWARNING | MB_OK);


如何将appStrt转换为LPCSTR,以便MessageBox不会抱怨?
我在以下代码中遇到了相同的问题:

DWORD dwStyle;
m_hWnd = CreateWindowEx(dwStyleEx,
                    m_pszClassName,
            dwStyle | WS_CLIPSIBLINGS | WS_CLIPCHILDREN, // complains here about dwStyle
            0,
                        etc.


CreateWindowEx也引发错误,指出dwStyle应该为LPCWSTR类型。
我在网上搜索,但只发现了以下转化:
LPCWSTR newWord = L“ OldWord”
但是我需要将DWORD或char *类型的变量转换为LPCWSTR的东西。

最佳答案

使用TCHAR代替char

TCHAR appStrt[] = _T("Application has already been started in a different window.");


至于第二个问题,您可能要检查a reference of CreateWindowEx,因为您在调用中缺少样式之前的参数。

08-06 18:26