【发布时间】:2014-10-04 23:16:32
【问题描述】:
我正在尝试修改旧的 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 的编译器选项设置为关闭,或设置其他编译器选项来解决此错误?如果没有,我可以手动修改很多行代码。在这种情况下,在过去 15 年中可能发生了什么变化,使这样的代码以前可以,但现在不行?
提前谢谢你。
【问题讨论】:
-
您可以尝试将项目类型设置为多字节而不是 unicode,但我不知道在使用 MFC 时这是否有效。
-
项目可能设置为 unicode 字符集。这将导致您的程序链接到 mciSendStringW 的宽版本而不是多字节版本 mciSendStringA。
-
在项目属性中设置为多字节,一般,字符集解决了我的问题。非常感谢!
标签: c++ visual-studio-2013 c2664