0

我正在尝试使用 c++ 和 mfc 制作一个简单的窗口。以下代码取自“Visual C++ and MFC Fundamentals”一书,但它不起作用。我收到错误 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;
4

2 回答 2

3

您可能正在使用 Unicode 字符集(这是默认设置)构建您的应用程序。将违规行更改为:

Create(NULL, _T("Windows Application"));

根据字符集,_T扩展为空(MBSC)或扩展为L(Unicode),从而产生宽字符串

于 2014-05-11T20:05:39.893 回答
0

如果字符集对您来说并不重要并且想要“永远”摆脱这种错误,您可以转到Project Properties-> Configuration Properties-> General-> Character Set,并将其设置为Use Multi-Byte Character Set. 如果不是,_T()和/或是L你的朋友(取决于你的字符集设置)

于 2014-05-11T20:15:00.037 回答