我正在尝试修改旧的MFC程序。在Visual Studio 2013中打开项目后,下面的类型有很多错误。
在AviPlay.cpp中
#include "stdafx.h"
#include "AviPlay.h"
#define OPEN_AVI_VIDEO "open avivideo"
BOOL initAVI()
{
return mciSendString(OPEN_AVI_VIDEO, NULL, 0, NULL) == 0;
}
抛出的错误是错误C2664:'MCIERROR mciSendStringW(LPCWSTR,LPWSTR,UINT,HWND)':无法将参数1从'const char [14]'转换为'LPCWSTR'
如果将Strict的编译器选项设置为off或某些其他编译器选项,请解决此错误?如果没有,我可以手动修改许多代码行。在那种情况下,在过去的15年里可能会发生什么变化,这会使这样的代码变好,但现在还不行?
提前谢谢你。
答案 0 :(得分:2)
LPCWSTR告诉你它正在期待一个wchar_t字符串,而不是一个char字符串。默认情况下,所有Windows API现在都接受wchar_t字符串(unicode)。您可以在项目属性,常规页面,字符集中将其更改回char字符串。将其设置为'使用多字节字符集'会让它像以前一样工作。