2

我正在尝试修改旧的 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)' : cannot convert argument 1 from 'const char [14]' to 'LPCWSTR'

是否应该将 Strict 的编译器选项设置为 off 或其他一些编译器选项来解决此错误?如果没有,我可以手动修改很多行代码。在这种情况下,在过去 15 年中可能发生了什么变化,使这样的代码以前可以,但现在不行?

先感谢您。

4

1 回答 1

3

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

于 2014-08-12T01:54:09.087 回答