我自己做的dll :a.dll,需要调用b.dll
a.dll的调用代码:
LoadLibrary("b.dll")我想问一下:假如所有的环境变量定义的文件夹里都没有b.dll,
只是运行的时候a.dll和b.dll放在一块,能行吗?加入c:\winnt\system32也有b.dll,哪个被调用?

解决方案 »

  1.   

    行系统会先调用当前路径下的那个dll
      

  2.   

    但是我试了一下,a.dll,b.dll放在一起不行,b.dll必须放到SYSWINDIR下
      

  3.   

    放在一起不一定行的,DLL的搜索路径里除了那些系统路径外还有当前目录,当前目录是由当前可执行程序所在的目录决定的。所以你的情况很可能是执行程序与b.dll不在一个目录下
      

  4.   

    楼上说的是 LoadLibrary(".\b.dll") 吧。
      

  5.   

    寻找dll的顺序如下:
    1。寻找被执行的程序当前目录下
    2。path环境变量里面指定的目录搜索顺序(可以在dos窗口中输入path命令察看)
      

  6.   

    楼上说的是 LoadLibrary(".\\b.dll") 吧。