在项目中做集成的时候碰到如下情况:
1.第三方厂商A和B分别提供了一套Sdk,Sdk中都有另外一个第三方C的dll,只是版本不同。
我把两家的sdk都封了一层,当程序启动的时候同时调用,两个第三方C的dll是否会冲突?
如果第三方C的dll完全一致,加载时,内存中是否会有两份dll。如果第三方C中存在了静态变量,情况会怎样?
2.如果我用插件把A,B两方的dll放在各自目录,加载时能否指定dll目录呢?

解决方案 »

  1.   

    如果第三方C的dll完全一致,加载时,内存中是否会有两份dll。如果第三方C中存在了静态变量,情况会怎样?
    ============
    应该只有一份,静态变量也好,全局变量也好,在DLL中并不共享,除非是设置成共享变量。
      

  2.   

    做了下实验,dll确实只有一份,就算是放在不同的目录下,也只会加载第一个,想彻底解决这个问题,看来只有.net可以做到。谢谢楼上的解答,平分吧。
      

  3.   

    楼主,我也碰到这样的问题,确实只加载第一个dll,搞不清其中的机制,楼主如果知道,能否分享一下?