문제

I'm trying to make a simple window using c++ and mfc. the following code is taken from the book "Visual C++ and MFC Fundamentals" but it doesn't work. I get error C2664:BOOL CFrameWnd::Create(LPCTSTR,LPCTSTR, ... ) cannot convert argument 2 from const char[20] to LPCTSTR. how can I change the code in order for it to work?

#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;
도움이 되었습니까?

해결책

You are probably building your application with Unicode character set (which is the default setting). Change the offending line to:

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

Depending on character set, _T expands either to nothing (MBSC), or to L (Unicode) which results in wide character string.

다른 팁

If character set doesn't really matter to you and want to get rid of this kind of errors "forever", you could go to Project Properties -> Configuration Properties -> General -> Character Set, and set it to Use Multi-Byte Character Set. If not, _T() and/or L are your friends (depending on your character set settings)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top