【问题标题】:How to get Imported type libraries from an OCX or TLB file?如何从 OCX 或 TLB 文件中获取导入的类型库?
【发布时间】:2011-05-01 10:41:08
【问题描述】:

我确信没有办法找到 ActiveX 的 COM 依赖项,但令我惊讶的是,OLEVIEW 显示了一些 cmets,例如:

// TLib : // TLib : OLE 自动化 : {00020430-0000-0000-C000-000000000046} importlib("stdole2.tlb"); // TLib:Visual Basic 运行时对象和过程:{EA544A21-C82D-11D1-A3E4-00A0C90AEA82} 导入库(“3”);

我尝试使用 TypeLibInfoFromFile 提取相同的信息,但根据我在 MSDN 中找到的信息,没有提供此信息的 Api。您是否知道从 OCX 或其 Tlb 文件中提取此信息的方法?知道我所有的 ocxes 都是用 vb6 编译的,我可以相信导入(显式不在代码中)接口的这个信息吗?

【问题讨论】:

    标签: com import idl tlb


    【解决方案1】:

    嗯,我找到了这个问题的答案。我会写在这里,以防有人会搜索相同的问题。可以找到一些依赖项,但您永远无法确定是否已找到所有依赖项。基本上,您必须枚举每种类型和接口,以及每种类型的每个成员以查找模块中的所有类型,并且对于您找到的每种类型,您应该检查它是否在外部 TypeLib 中。最后你有一个引用的类型库列表。

    这种方法的问题在于,您只能找到公共接口中使用的类型(字段、返回值和参数),而您错过了每个本地对象或动态创建的对象。也就是说,您可以查看此链接以获取 implementation 或更好的 this one

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 2019-02-16
      • 1970-01-01
      • 2023-03-17
      • 2019-07-09
      • 2016-07-27
      • 2015-04-09
      相关资源
      最近更新 更多