在mfc dll中为什么CString str="aa";这种写法报错,只能使用CString str;str="aa";呢?
展开全部
你使用了UNICODE项目,如果一定要写成一行,可以这样写:
CString str=_T("aaa");或者CString str=L"aaa";或者CString str("aaaa");
为什么这样,我也不知道.
以前我以为是CString重载了operator=(const char*)操作却没有定义CString(const char*),但似乎不能这么简单的理解.
CString类型在内部是这么定义的:
typedef ATL::CStringT< TCHAR, StrTraitMFC_DLL< TCHAR > > CString;
你如果想弄明白这个问题要去了解下类模板
CString str=_T("aaa");或者CString str=L"aaa";或者CString str("aaaa");
为什么这样,我也不知道.
以前我以为是CString重载了operator=(const char*)操作却没有定义CString(const char*),但似乎不能这么简单的理解.
CString类型在内部是这么定义的:
typedef ATL::CStringT< TCHAR, StrTraitMFC_DLL< TCHAR > > CString;
你如果想弄明白这个问题要去了解下类模板
展开全部
CString str="aa";是简便写法,在VC MFC中已经集成化了,就等于后者,在C语言中这样就不行,dll编写环境没有那么多集成的东西,按照C写就好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
dll里面怎么写如CString的对象 求指导 我一直没写出来。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询