Midl编译器错误:2214

4 c++ midl visual-studio-2013

我对项目(OCX)有一些问题:当我尝试在发布模式下编译时,编译会停止并显示以下消息:

"1> C:\ Program Files(x86)\ MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(1178,5):错误MSB6006:"midl.exe"退出,代码为2214."

我找不到任何有用的调试错误的信息,因为它不是错误代码,是退出代码.我可以做什么?它在开始解析"oaidl.acf"后立即停止.

Mat*_*ger 13

在尝试编译在VS2013中升级的OCX项目时,我遇到了同样的错误.我必须打开.odl文件并在库块中移动#include语句.

之前:

#include <olectl.h>
#include <idispids.h>

[ uuid(...), version(1.0), ... ]
library ...
{
    importlib(STDOLE_TLB);
    importlib(STDTYPE_TLB);
Run Code Online (Sandbox Code Playgroud)

后:

[ uuid(...), version(1.0), ... ]
library ...
{
    #include <olectl.h>
    #include <idispids.h>
    importlib(STDOLE_TLB);
    importlib(STDTYPE_TLB);
Run Code Online (Sandbox Code Playgroud)

您也可以通过从MIDL设置中删除/ mktyplib203开关来解决您的问题.

Project->Properties->Configuration Properties->MIDL->General->MkTypLib Compatible: Yes (/mktyplib203)
Run Code Online (Sandbox Code Playgroud)

这与此问题非常相似:FIX:Platform SDK导致MIDL抛出MIDL2311错误

MIDL2311 : statements outside library block are illegal in mktyplib compatibility mode.
Run Code Online (Sandbox Code Playgroud)