Получение ошибки компиляции в VS2010, следуя первому примеру hello world - PullRequest
1 голос
/ 13 мая 2011

я только начал изучать MFC .. нашел здесь учебник http://bit.ly/j2uhHO ... просто попробовал то же самое в VS2010, но получил ошибку компиляции в этом коде ..

void CChildView::OnPaint() 
{

    CPaintDC dc(this); // device context for painting

    dc.TextOut(0, 0, "Hello, world!");

    // TODO: Add your message handler code here

    // Do not call CWnd::OnPaint() for painting messages
}

И ошибка:

error C2664: 'BOOL CDC::TextOutW(int,int,const CString &)' : cannot convert parameter 3 from 'const char [14]' to 'const CString &

Может кто-нибудь решить эту проблему и предложить несколько руководств по MFC, пожалуйста .. спасибо ..

Ответы [ 2 ]

3 голосов
/ 13 мая 2011

Ошибка говорит вам, что именно не так.

error C2664: 'BOOL CDC::TextOutW(int,int,const CString &)' : cannot convert parameter 3 from 'const char [14]' to 'const CString &'

TextOutW() ожидает const CString & в качестве третьего параметра, и вы передаете const char [14]

Вам необходимо сделать:

dc.TextOut(0, 0, L"Hello, world!");  

, который передает третий аргумент в формате, требуемом функцией.

Для ссылок на ресурсы MFC вы видите this .

1 голос
/ 13 мая 2011

Проблема в том, что Windows по умолчанию использует широкие символы wchar_t для текстов. Вам понадобится

    dc.TextOut(0, 0, L"Hello, world!"); 
...