我的项目(OCX)有一些问题:当我尝试在发布模式下编译时,编译停止并显示以下消息:
“1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(1178,5):错误 MSB6006:“midl.exe”退出,代码为 2214。”
我找不到任何对调试错误有用的信息,因为它不是错误代码,而是退出代码。我可以做什么?它在开始解析“oaidl.acf”后立即停止。
我的项目(OCX)有一些问题:当我尝试在发布模式下编译时,编译停止并显示以下消息:
“1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(1178,5):错误 MSB6006:“midl.exe”退出,代码为 2214。”
我找不到任何对调试错误有用的信息,因为它不是错误代码,而是退出代码。我可以做什么?它在开始解析“oaidl.acf”后立即停止。
尝试编译在 VS2013 中升级的 OCX 项目时,我遇到了同样的错误。我必须打开 .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);
您还可以通过从 MIDL 设置中删除/mktyplib203开关来解决您的问题。
Project->Properties->Configuration Properties->MIDL->General->MkTypLib Compatible: Yes (/mktyplib203)
这与这个问题非常相似:FIX: Platform SDK Causes MIDL to Throw MIDL2311 Error
MIDL2311 : statements outside library block are illegal in mktyplib compatibility mode.