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

也许,TLB文件有几个importlib指令,而OleView找不到引用的文件。我可以在OleView中查看该组件的OCA文件,它的等价物在顶部包含以下行:
// 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?
发布于 2016-04-08 16:17:24
我可以使用OleWoo tool将存储在OCA文件中的组件的扩展类型库转换为相应的IDL文件。然而,我得到的IDL在很多地方是不正确的。它不包含分号等,但至少可以用它来大致了解组件中实现的COM接口。
发布于 2019-10-10 21:19:38
我也面临着同样的问题,原因有二
??filename表示该GUID对应的tlb未注册。您需要找出与之对应的tlb,并针对文件名运行regtlib
https://stackoverflow.com/questions/36469657
复制相似问题