【问题标题】:compilation error while #import tlb file in COM automation在 COM 自动化中 #import tlb 文件时出现编译错误
【发布时间】:2014-11-26 02:04:38
【问题描述】:

我正在尝试在 VC++ 项目中#include 一个应用程序 tlb 文件。

在我的项目源文件中 #import "CANoe.tlb" 之后出现以下编译错误。 -

  • 未知字符“0x1”
  • 语法错误:缺少';'在标识符“A”之前
  • 缺少类型说明符
  • int 假定。注意:C++ 不支持 default-int
  • '{' : 缺少函数头(旧式正式列表?)

如果我做错了什么,请提出建议。

另外,有没有办法验证 .tlb 文件内容并解决这些错误。是否可以在 tlb 文件中进行更正?如果是这样,我如何创建更新的 tlb

提前致谢

【问题讨论】:

  • 您可以使用 OleView 查看 tlb。如果可能的话,纠正 tlb 是一种痛苦。但是,一旦您确定了问题的根源,您就可以使用 import 指令的属性(全部在 MSDN 中描述)来尝试解决它。​​

标签: c++ com typelib


【解决方案1】:

我的第一个想法是您正在处理一个不是 TLB 的文件。或者至少,被破坏了。

我会尝试在 OleView 中调出 TLB。这应该可以让您快速检查 TLB 是否有效。

【讨论】:

    【解决方案2】:

    如果类型库文件完好无损,下一步是尝试查找生成的 .tlh 和 .tli 文件 - 它们将位于某个临时文件夹中,并与类型库文件和“.tlh”/“同名.tli”扩展名。如果它们存在,检查它们可能会有很大帮助。

    import 指令做了两件事 - 它构建“.tlh”和“.tli”文件,然后包含它们 - 错误消息对应于第二阶段 - 当 C++ 编译器拒绝编译它们时。检查文件可能有助于确定原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多