如何使用CWnd :: CreateEx

时间:2009-08-17 09:12:36

标签: visual-studio-2008 mfc

我正在使用

CreateEx(

0,   班级名称,   “XXX”,   WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN,   RECT,   父母,   0); 在Visual C ++ 6.0中。

当我将其移植到VS 2008时.., 它给出了一条错误信息,说明了......

error C2664: 'BOOL CWnd::CreateEx(DWORD,LPCTSTR,LPCTSTR,DWORD,const RECT &,CWnd *,UINT,LPVOID)' : cannot convert parameter 3 from 'const char [7]' to 'LPCTSTR'

如何纠正同样的问题 谢谢 奇特拉

2 个答案:

答案 0 :(得分:2)

LPCTSTR是指向wide-char变体的typedef,如果已启用(默认情况下为新版本)。只需将您的文字更改为wide-char(或者更好,使用适当的宏来返回正确的文字):

CreateEx(0, className, _T("XXX"),
    WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN, rect, parent, 0);

答案 1 :(得分:1)

要直接移植旧代码,可以通过右键单击项目名称,转到属性,然后将字符集更改为“多字节”来关闭Unicode。

当然假设您的原始代码尚未使用Unicode ...