佚名通过本文主要向大家介绍了关于财务方面的问题,汽车方面的专业问题,严以修身方面的问题,幼儿教育方面的问题,四风四气方面问题清单等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 应该很简单的问题,但是我以前不是做COM方面的不知道,求人帮忙。
描述:
解决方案1:
描述:
目前我遇到了一个问题,以下是问题描述:
有2个dll, a.dll 和 b.dll 。其中 a.dll为我们的提供的函数库的方法。b.dll是对a.dll做了一个com形式的封装,使得可以通过a.dll的注册调用到b.dll的方法。问题在于此:a.dll必须放置到 windows的system32目录下才可以被调用到,否侧就找不到对应的方法。请问如何修改b.dll使得可以让a.dll放置到其他的目录下或者自动找到a.dll的位置?
解决方案1:
不大明白LZ的意思,用LoadLibrary不就行了?
解决方案2:把dll放在程序当前目录下,不用load也是可以找到的。顺便问问,把dll放在system32下有什么不妥吗?到时你的程序打包,也是要把dll打进去的。放在安装目录下,或是放在system32下。
解决方案3: 动态载入
将a.dll放到程序目录可能也行的。
LoadLibrary("a.dll");
会在一下路径中查找a.dll:
b所在的文件夹,system32文件夹,system文件夹,环境变量path所定义的文件夹
b使用了a,然后注册b吧.
b可以隐式或显示调用a,不管哪种调用方式,a的路径都是相对的,也就是说,通过查找路径能找到a就行.