У меня есть проблема с проектом (OCX): когда я пытаюсь скомпилировать в режиме релиза, компиляция останавливается с этим сообщением:
«1> C: \ Program Files
(X86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V120 \ Microsoft.CppCommon.targets (1178,5):
ошибка MSB6006: «midl.exe» завершен с кодом 2214. «
Я не могу найти какую-либо информацию, полезную для устранения ошибки, потому что это не код ошибки, а код выхода. Что я могу сделать?
Он останавливается сразу после начала разбора «oaidl.acf».
Я получал ту же ошибку при попытке скомпилировать проект OCX, который был обновлен в VS2013. Мне пришлось открыть файл .odl и переместить операторы #include внутри библиотечного блока.
До:
#include <olectl.h>
#include <idispids.h>
[ uuid(...), version(1.0), ... ]
library ...
{
importlib(STDOLE_TLB);
importlib(STDTYPE_TLB);
После:
[ uuid(...), version(1.0), ... ]
library ...
{
#include <olectl.h>
#include <idispids.h>
importlib(STDOLE_TLB);
importlib(STDTYPE_TLB);
Вы также можете решить проблему, удалив / mktyplib203 переключиться с настроек MIDL.
Project->Properties->Configuration Properties->MIDL->General->MkTypLib Compatible: Yes (/mktyplib203)
Это очень похоже на эту проблему: ИСПРАВЛЕНИЕ: SDK платформы вызывает ошибку MIDL to Throw MIDL2311
MIDL2311 : statements outside library block are illegal in mktyplib compatibility mode.
Других решений пока нет …