+ -
当前位置:首页 → 问答吧 → 拿到dll,如何判断是com组件还是普通的dll?

拿到dll,如何判断是com组件还是普通的dll?

时间:2011-12-01

来源:互联网

如题,拿到一个dll,但是不知道是com组件还是普通的dll。
用dumpbin也没显示什么具体信息。

有什么命令可以查看么?

作者: zerotodream   发布时间: 2011-12-01

简单的方法是看导出函数名称。

作者: mydo   发布时间: 2011-12-01

可以尝试注册一下

作者: chengbar   发布时间: 2011-12-01

Depends
DllGetClassObject

楼上的方法不错,可以判断DllRegisterServer有没有导出

作者: firmbird   发布时间: 2011-12-01

引用 1 楼 mydo 的回复:

简单的方法是看导出函数名称。


1.com组件的导出函数里包含了一些特别函数如DllRegisterServer ,是不是只要包含了DllRegisterServer 的,就都是com?
2.如果普通dll也刚好实现了这些函数,那怎么办?
3.如下面的dumpbin导出,name字段DllRegisterServer = _DllRegisterServer@0表示什么意思呀?普通的dll name字段就是一个符号而已……

  4 3 00001050 DllRegisterServer = _DllRegisterServer@0

作者: zerotodream   发布时间: 2011-12-01

引用 2 楼 chengbar 的回复:

可以尝试注册一下


注册是指regsvr32 dll么?普通的dll也可以注册的吧?

作者: zerotodream   发布时间: 2011-12-01

引用 4 楼 zerotodream 的回复:

引用 1 楼 mydo 的回复:

简单的方法是看导出函数名称。


1.com组件的导出函数里包含了一些特别函数如DllRegisterServer ,是不是只要包含了DllRegisterServer 的,就都是com?
2.如果普通dll也刚好实现了这些函数,那怎么办?
3.如下面的dumpbin导出,name字段DllRegisterServer = _DllRegisterServer@0表示什么意思呀?普通的dll name字段就是一个符号而已……


第三点错了,我发现我写的dll,name字段是××=××格式的,但是别人的dll有些没等号的……

作者: zerotodream   发布时间: 2011-12-01