如何分别调用两个同名动态链接库

动感小麦兜 2018-10-14 09:35:41
现在有两个厂家的设备,但在程序中需要引用的动态链接库的名字是一致的,假如都为a.dll。以前是分别为两个厂家的设备各配一套程序,但这种方式不容易维护,现在想在一个程序中同时兼容这两个厂家的设备,如果想用厂家A的设备,就在程序里选择厂家A,如果想用厂家B的设备,就在程序里选择厂家B,请问有什么好的方法吗?

如果以上方式无解决方案,可以和厂家B协商,使它家的动态链接库变为b.dll,如果这样的话,又该如何进行加载动态链接库?

网上动态加载动态链接库的方法试过了,但感觉这种方法可能不如静态的效率高,恳请大神支招
...全文
666 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
棉猴 2018-10-15
  • 打赏
  • 举报
回复
就如同上面几个朋友说的,对于同名的动态库,使用LoadLibrary()吧,把两个动态库保存在不同的路径上。用if...else语句来判断调用哪一个动态库。
super_admi 2018-10-15
  • 打赏
  • 举报
回复
1.自己对DLL再增加一层封装;
2.写两个不同的程序,A程序使用A.DLL,B程序使用B.DLL。别说切换厂商,就是同时两个厂商都没问题。
动感小麦兜 2018-10-15
  • 打赏
  • 举报
回复
感谢各位的回答!
十八道胡同 2018-10-14
  • 打赏
  • 举报
回复
LoadLibrary
GetProcAddress

FreeLibrary

用这3个函数即可,每次Load不同的dll
smwhotjay 2018-10-14
  • 打赏
  • 举报
回复
手工load ,不知道修改二进制导出函数名有没有用
真相重于对错 2018-10-14
  • 打赏
  • 举报
回复
通过 loadlibrary(库名)调用不同的库
通过getprocaddress()获取dll输出函数

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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