Visual C ++ MFC ошибка C2664

Я пытаюсь сделать простое окно, используя 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

Решение

Вы, вероятно, создаете свое приложение с набором символов Unicode (это настройка по умолчанию). Измените оскорбительную строку на:

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

В зависимости от набора символов, _T расширяется либо в ничто (MBSC), либо в L (Unicode), что приводит к широкая строка символов.

3

Другие решения

Если набор символов для вас не имеет значения и вы хотите избавиться от ошибок такого рода «навсегда», вы можете перейти к Project Properties -> Configuration Properties -> General -> Character Setи установите его в Use Multi-Byte Character Set, Если не, _T() и / или L ваши друзья (в зависимости от настроек вашего набора символов)

0

По вопросам рекламы [email protected]