Ошибка компилятора Midl: 2214

У меня есть проблема с проектом (OCX): когда я пытаюсь скомпилировать в режиме релиза, компиляция останавливается с этим сообщением:

«1> C: \ Program Files
(X86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V120 \ Microsoft.CppCommon.targets (1178,5):
ошибка MSB6006: «midl.exe» завершен с кодом 2214. «

Я не могу найти какую-либо информацию, полезную для устранения ошибки, потому что это не код ошибки, а код выхода. Что я могу сделать?
Он останавливается сразу после начала разбора «oaidl.acf».

4

Решение

Я получал ту же ошибку при попытке скомпилировать проект 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.
12

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]