错误 MIDL2025:语法错误:需要一个接口

Posted

技术标签:

【中文标题】错误 MIDL2025:语法错误:需要一个接口【英文标题】:error MIDL2025 : syntax error : expecting an interface 【发布时间】:2012-01-26 14:25:33 【问题描述】:

我正在使用 MS Studio 8 编译相当旧的代码,并得到一个相当烦人的错误: 错误 MIDL2025:语法错误:需要接口名称或 DispatchInterfaceName 或 CoclassName 或 ModuleName 或 LibraryName 或“异常”附近的类型规范。

这是一个 *.idl:

#ifndef __UserCORBAException_IDL__
#define __UserCORBAException_IDL__

exception UserCORBAException 
    string xml;
;

#endif//__UserCORBAException_IDL__

它使用 Studio 6 编译。

【问题讨论】:

"exception" 不是有效的 Microsoft midl.exe 关键字。我严重怀疑它曾经是。考虑一下您在 VS6 中运行另一个 IDL 编译器的可能性。 【参考方案1】:

看起来您正在使用 Microsoft IDL 编译器编译 CORBA IDL。它们是不同的语言,它们只是使用相同的文件扩展名。

我假设您正在导入现有项目,并且您已接受建议的工具来编译文件,但它是错误的工具。

您需要使用 CORBA IDL 编译器。

【讨论】:

我正在用omniidl.exe 编译CORBA IDL,它会生成必要的头文件和cpp 文件。这是在使用 MS Studio 8 编译项目之前完成的。*.idl 文件从项目中排除,但位于项目源目录中。 我解决了从 *.proj 文件中手动删除 MIDL 的问题。

以上是关于错误 MIDL2025:语法错误:需要一个接口的主要内容,如果未能解决你的问题,请参考以下文章

错误 MSB6006:“midl.exe”退出,代码为 2026

获取 MIDL 2003 重新定义错误

对打字稿文件语法错误的开玩笑测试:“接口是严格模式下的保留字”

语法错误:“)”在此位置无效,需要 EOF ,';'

OCaml 编译错误:语法错误:需要模块路径

MySQL 语法错误?奇怪的错误