我正在尝试使用c ++和mfc创建一个简单的窗口。以下代码取自“Visual C ++和MFC基础”一书,但它不起作用。我得到错误C2664:BOOL CFrameWnd :: Create(LPCTSTR,LPCTSTR,...)无法将参数2从const char [20]转换为LPCTSTR。如何更改代码才能使其正常工作?
#include <afxwin.h>
class CSimpleFrame : public CFrameWnd
{
public:
CSimpleFrame()
{
// Create the window's frame
Create(NULL, "Windows Application");
}
};
struct CSimpleApp : public CWinApp
{
BOOL InitInstance()
{
// Use a pointer to the window's frame for the application
// to use the window
CSimpleFrame *Tester = new CSimpleFrame ();
m_pMainWnd = Tester;
// Show the window
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
return TRUE;
}
};
CSimpleApp theApp;
答案 0 :(得分:3)
您可能正在使用Unicode字符集(这是默认设置)构建应用程序。将违规行更改为:
Create(NULL, _T("Windows Application"));
根据字符集的不同,_T
可以扩展为空(MBSC),也可以扩展为L
(Unicode),从而产生wide character string。
答案 1 :(得分:0)
如果字符集对您来说并不重要,并希望“永远”摆脱这种错误,您可以转到Project Properties
- &gt; Configuration Properties
- &gt; General
- &gt; Character Set
,并将其设置为Use Multi-Byte Character Set
。如果没有,_T()
和/或L
是您的朋友(取决于您的字符集设置)