怎么样判断一个DLL是COM组件?

slhuang 2005-11-29 01:01:29
也就是说普通的DLL和需要注册的DLL,我怎么用 程序 区分开来?
...全文
317 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
newplayer1 2005-12-01
  • 打赏
  • 举报
回复
应该是可以判断的

DllRegisterServer属于系统带的导出函数,如果你也导出这个函数,应该会提示overload错误
xx_jj 2005-12-01
  • 打赏
  • 举报
回复
关注
slhuang 2005-12-01
  • 打赏
  • 举报
回复
自己再顶一下下……
slhuang 2005-11-30
  • 打赏
  • 举报
回复
楼上的,有意义没意义要看你怎么看了。
角度不一样,场合不一样都不一样。
就好象你觉得给你神六的摄像头,你只能拿来跟人家小MM视频一样。
呵呵……玩笑了。

XXandOO 2005-11-30
  • 打赏
  • 举报
回复
判断这个有意义吗?组件发布的时候没有头文件和类型库?如果内涵类型库,可以导出相关信息,否则就没办法使用了,管它是什么。
蒋晟 2005-11-30
  • 打赏
  • 举报
回复
What if it does not registers itself but uses COM interfaces as function parameters?
HoneyPot 2005-11-29
  • 打赏
  • 举报
回复
恩,不过判断注册dll函数的方法是好的,但是一旦加壳就不行了,如果版本信息资源被清除也是不行的,穿了马甲的确不好判断,如果注册成功就可以说明是com,呵呵...
slhuang 2005-11-29
  • 打赏
  • 举报
回复
在version info 里面有一个oleselfregister的属性
没错,是有。但是好象也不准确。
比如一个OWC,里面除了上面的oleselfregister外,还有legalTrademarkS1,legalTrademarkS2这样的标志。

寻求较为完善的解决方法中。谢谢各位的参与,继续。 ^_^
寻开心 2005-11-29
  • 打赏
  • 举报
回复
判断是否有那几个函数也不安全吧,随便写个dll,导出那几个函数,里面胡乱写一通,可不是com啊

不知道有什么更安全的判别方法,感觉不应该用这样的标志

组件是需要注册的,但是这个注册可不是系统自动完成的,是需要一些额外的手段的
hjunxu 2005-11-29
  • 打赏
  • 举报
回复
除了枚举接口函数加以判断外,就真的没有其他标志性的可以区别吗(假设比如文件标志位)
--------------------------
去问问那些pe文件高手会不会有区别。
在version info 里面有一个oleselfregister的属性,不知道可不可以。
slhuang 2005-11-29
  • 打赏
  • 举报
回复
DllCanUnloadNow -----
Determines whether the DLL that implements this function is in use. If not, the caller can unload the DLL from memory.
小心地问下,这样做为判断准确吗?

DllRegisterServer 和 DllUnRegisterServer应该是可以吧。但是我还是不敢确定。
除了枚举接口函数加以判断外,就真的没有其他标志性的可以区别吗(假设比如文件标志位)?


sinall 2005-11-29
  • 打赏
  • 举报
回复
用程序?

用显式链接的方法查找“DllRegisterServer”函数是否存在。
sinall 2005-11-29
  • 打赏
  • 举报
回复
depends看看
吹泡泡的小猫 2005-11-29
  • 打赏
  • 举报
回复
将这个dll用LoadLibrary正常装载,然后看看有没有以下四个导出函数,如果有很可能就是com组件

DllCanUnloadNow
DllGetClassObject
DllRegisterServer
UllUnregisterServer

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧