描述:
我正在做的一个基于COM的应用,需要调用一些其他的DLL。但是有一个有第三方提供的DLL,用regsvr32注册失败,应该是找不到入口点。但是现在这个DLL没有源码,暂时无法修改。有人告诉我COM调用的所有DLL都必须要注册。请问大家有没有办法能让COM组件能够正常的调用这个DLL中的功能?非常感谢。
解决方案1:
COM调用的DLL不一定非要是COM组件,不然那些KERNEL32.DLL,USER32.DLL中的API函数COM就不能使用了?
不过如果你的COM中调用了其他非WINDOWS系统提供的DLL,当COM发布时这个DLL文件也要跟随你的COM组件一起发布,不然你的COM组件别人就没有办法使用,注册也会失败。
直接LoadLibrary吧,不过至少你应该了解清楚这个DLL提供了哪些导出函数给你使用才行。
解决方案3: 有人告诉我COM调用的所有DLL都必须要注册
这是胡扯
非COM dll直接调用就是了,跟系统dll一样的调用.
要不要注册是由DLL决定的,不是由调用的程序决定的。
你现在需要知道调用的接口。
有人告诉我COM调用的所有DLL都必须要注册
===========================
只有COM的DLL才要注册,一个普通的DLL是不注册的,注不注册关键看DLL是不是COM组件,并不是看这个DLL用在什么地方.