C2664错误c ++ Visual Studio

时间:2014-08-12 01:44:06

标签: c++ visual-studio-2013 c2664

我正在尝试修改旧的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年里可能会发生什么变化,这会使这样的代码变好,但现在还不行?

提前谢谢你。

1 个答案:

答案 0 :(得分:2)

LPCWSTR告诉你它正在期待一个wchar_t字符串,而不是一个char字符串。默认情况下,所有Windows API现在都接受wchar_t字符串(unicode)。您可以在项目属性,常规页面,字符集中将其更改回char字符串。将其设置为'使用多字节字符集'会让它像以前一样工作。