Я пытаюсь сделать простое окно, используя 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;
Вы, вероятно, создаете свое приложение с набором символов Unicode (это настройка по умолчанию). Измените оскорбительную строку на:
Create(NULL, _T("Windows Application"));
В зависимости от набора символов, _T
расширяется либо в ничто (MBSC), либо в L
(Unicode), что приводит к широкая строка символов.
Если набор символов для вас не имеет значения и вы хотите избавиться от ошибок такого рода «навсегда», вы можете перейти к Project Properties
-> Configuration Properties
-> General
-> Character Set
и установите его в Use Multi-Byte Character Set
, Если не, _T()
и / или L
ваши друзья (в зависимости от настроек вашего набора символов)