同样的代码,我在VS2015和VS2008上分别运行了一次,然而在VS2015上的AfxMessageBox()函数会有error C2665: “AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类型 这样的提示信息.
AfxMessageBox()的原型有两种
int AfxMessageBox(LPCTSTRlpszText,UINTnType=MB_OK,UINTnIDHelp=0);
int AFXAPI AfxMessageBox( UINT nIDPrompt, UINT nType = MB_OK, UINT nIDHelp = (UINT) –1 );
此处我对其解决办法作了一个归纳:
1,VC2015中默认的工程选项是UNICODE,所以,加上_T或L是需要的。
例如:AfxMessageBox("This is AfxMessageBox!");——〉AfxMessageBox(_T("This is AfxMessageBox!"));
2,选择“项目”菜单->项目属性->配置属性->常规->字符集,改为“未设置”。