Я пытаюсь изменить старую программу 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 или какой-либо другой параметр компилятора? Если нет, я могу изменить многие строки кода вручную. В таком случае, что могло бы измениться за последние 15 лет, что сделало бы код таким, как раньше, но не сейчас?
Заранее спасибо.
LPCWSTR сообщает, что ожидает строку wchar_t, а не строку char. По умолчанию все API-интерфейсы Windows теперь принимают строки wchar_t (юникод). Вы можете изменить его обратно на строки символов в свойствах проекта, странице «Общие», «Набор символов». Установка «Использовать набор многобайтовых символов» приведет к тому, что он будет работать как раньше.