闲话不多,学习孙鑫《深入详解C++》,在动态链接库一章遇到的一点问题,记录于此。

 

MFC中,在面板上放置一个按钮,并编写单击事件,其中声明了一个CString类型的变量str,之后对其调用Fromat方法入下:str.Format("a+b=%d",add(a+b));生成解决方案时会出现error C2664这个问题。

 

这是一个十分常见的问题,一般都是出现在类型转换错误时。此处直接给出解释。

 

此处的问题出在,Format方法中,第一个参数的unicode转ASCII码的问题上。解决也十分简单,在第一个参数外套上_T()这个类型转换声明就OK了。如下:str.Format(_T("a+b=%d"),add(a+b));

 

PS:编译环境为VS2008,貌似VC6.0不会出现此问题。