描述:
一个没有类型库的COM DLL,想调用里面的函数,该怎么办呢?
请各位大侠赐教
解决方案1:
补充楼上:
但你的组件必须实现 IDispatch
OLE Object Viewer 还有 COM Explorer 这类软件怎么列出COM接口中的方法和属性?
VB 的对象浏览器能列出 COM 的方法和属性我想是 IDispatch 提供的方法吧?
简单思考过但没去试验过,关注!
普通的方法是使用Visual Studio中的ole view 工具即可看到.dll中的接口和函数定义
解决方案3:如果没有tlb,那么就按照这个dll的名字在注册表里找到这个dll,然后就能看到classid,然后就猜吧。
解决方案4:没有类型库?是没有tlb文件?还是Dll中导不出类型来?如果是前者,采用#import的方式还行,如果是后者,:(((
解决方案5: vb支持不通过类型库,而直接通过运行期绑定方法。
Set obj = CreateObject("MyCom.InsideCOM");
obj.dosome();
obj.doother();
没有类型库那就一点办法没有了,不过你还是可以用反向工程去分析一个对象有几个接口,每个接口有几个方法,每个方法有几个参数。
解决方案7:ole view->file->view typelib
解决方案8:没有类型库的组件dll就像没有头文件(.h文件)的开发库,我实在想不出来他的用途
解决方案9:dumpbin
解决方案10:你用VC的类向导不是可以从dll中生成包装类吗?不就可以看到所的有接口了
解决方案11: 没有类型库你就是不让你看的。
如果有类型库的话,也不用像楼上兄弟说的那么复杂,需要什么工具。其实类型库嵌套在dll或者exe中,都是以id为1的二进制资源。用vc就可以导出。
OLEVIEW
解决方案13: 有个软件叫什么dll2lib的,可以把dll转成lib
具体我也没用过
你可以试试