首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OleView.exe无法反编译从VB6 OCX提取的类型库

OleView.exe无法反编译从VB6 OCX提取的类型库
EN

Stack Overflow用户
提问于 2016-04-07 15:38:54
回答 2查看 1.6K关注 0票数 2

我正在尝试获取使用VB6创建的复杂ActiveX控件的类型库的IDL文件。我试着在我的64位Win10专业版的开发pc上用OleView.exe做到这一点。当我试图打开OCX文件或从中提取的TLB时,OleView的x64版本就会崩溃。x86版本两次向我显示以下错误框:

也许,TLB文件有几个importlib指令,而OleView找不到引用的文件。我可以在OleView中查看该组件的OCA文件,它的等价物在顶部包含以下行:

代码语言:javascript
复制
// TLib :     // TLib : Visual Basic objects and procedures : {FCFB3D2E-A0FA-1068-A738-08002B3371B5}
importlib("VB6.OLB");
// TLib : OLE Automation : {00020430-0000-0000-C000-000000000046}
importlib("stdole2.tlb");
// TLib : Visual Basic runtime objects and procedures : {EA544A21-C82D-11D1-A3E4-00A0C90AEA82}
importlib("3");

如何用OleView解决这个问题?或者,是否有其他工具可以将TLB转换为IDL?

EN

回答 2

Stack Overflow用户

发布于 2016-04-08 16:17:24

我可以使用OleWoo tool将存储在OCA文件中的组件的扩展类型库转换为相应的IDL文件。然而,我得到的IDL在很多地方是不正确的。它不包含分号等,但至少可以用它来大致了解组件中实现的COM接口。

票数 0
EN

Stack Overflow用户

发布于 2019-10-10 21:19:38

我也面临着同样的问题,原因有二

  1. VB组件的tlb未注册。您需要以管理员身份运行regtlib 。之后,oleview将打开tlb,但出现错误。VB组件引用的tlb文件的
  2. one未注册。在OLE视图的顶部,将有一个类似以下的条目// TLib:??filename:{000XXXXX-0000-0000-C000-000000000046} (某个GUID)

??filename表示该GUID对应的tlb未注册。您需要找出与之对应的tlb,并针对文件名运行regtlib

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36469657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档