1

我刚开始学习 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 教程..谢谢你..

4

2 回答 2

3

该错误告诉您到底出了什么问题。

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 资源,请参阅.

于 2011-05-13T08:36:58.427 回答
1

问题是 Windows 默认使用宽字符wchar_t作为文本。你需要

    dc.TextOut(0, 0, L"Hello, world!"); 
于 2011-05-13T08:34:54.493 回答