【DLL】关于DLL在程序运行时加载的问题
公司有一个项目提出了一个需求,要求在项目里调用某种设备的驱动程序。
这种设备属于专业设备,有很多的厂家在生产,但是这些厂家并没有一个统一的标准来做,因此导致每个厂家生产的设备,都有一个属于自己的驱动程序接口。
A厂家提供了Dll_A.dll,并导出了一大堆的函数给开发人员使用。
同理B厂家C厂家都提供了不同的DLL,这些DLL的接口完全不同……
为了整合这些不同的DLL,我简单的弄了一个适配器,在基类提供接口,在不同的子类中【静态链接】了不同厂家的DLL并使用这些DLL导出的函数来实现基类的功能。
现在需求发生了变化!
公司不希望“把程序交给用户的时候,要把所有厂家提供的DLL都打包给用户”。
而是希望“把程序交给用户之后,用户可以通过添加不同的DLL来实现对不同厂家设备的支持”
于是我的代码出现了问题,在运行时,会报“找不到XXX.dll。重新安装程序可能解决这个问题”。
我的第一个解决方案是把所有的DLL改为【动态链接】,然后在没有这种DLL的时候,我就不去初始化那个封装了它的类,这样就不会出现那种错误了。
但是这个方案被上面否了,上面不希望我在代码中使用LoadLibrary。
于是希望大家能帮我一下,如果真的有别的办法来解决这个需求,希望能提供给我一个思路,如果真的没有别的办法来解决这个需求,希望能给我一个合理的理由,我好和上面交代……
文字很长,分很少,问题很复杂,给大家赔个不是先……实在是没有更多的分了 T T,去哪儿刷分啊……