请问各位拿到一个新的DLL文件,调试时是放到哪里?
放到工程目录,DEBUG目录,SYSTEM32,还是自己另外建个目录随便放?开发了一个DLL接口给第三方用,全他M的自己建个文件夹放进去问我为什么调不到。
麻烦大家告诉一声,我错在哪了。

解决方案 »

  1.   

    请问,当这个DLL调用另一个DLL的时候,另一个DLL放哪里?
      

  2.   

    和exe同一个目录就可以了啊
    如果在debug,那就放在debug目录啊
      

  3.   

    一般dll和exe都放在bin目录下
    release和debug的区别就是后面带个d, xxx.dll,xxxd.dll
    微软自己就这么干的
    找不到dll完全是自己的问题,你用别人的库,凭什么让别人和你保持一致?换句话说,别人用你的库,找不到dll,你怎么说。再说了,exe和dll发行之后,你见过哪家的安装目录下面还有debug和release?
      

  4.   

    我也是这么想的,可是人家不愿意,非要自己建个目录放进去。
    请问,我的这个DLL再调用其他DLL的时候,如果放在自己定义的目录我的DLL怎么才能调用得到依赖的DLL?
      

  5.   

    哦,是第三方调用你的没调到,一般exe和dll在一个目录下就没问题,明显是他的exe没生成在自己的目录下面。可能他把dll当成com了。如果是com的话, 注册后,可以不用管在哪个目录下面。
      

  6.   

    这个说到我心里去了。
    你自己建个目录给放到EXE同一层路径也可以啊,非要自己放C盘D盘E盘,让我情何已堪啊。
    碰到这么多这种人如何是好...
      

  7.   

    我有个疑问,如果做成COM,那COM调用其他DLL,这个DLL如何放置?
      

  8.   

    这个就是要结合DLL加载顺序和你的设计期望了。
    我随便抄了段加载顺序
    1.包含可执行文件的目录。
    2.如果通过SetDllDirectory设置了路径。则搜索该路径,并不再搜索第6步。(XP后支持,比如VC6无该接口)
    3.Windows系统目录,即C:\WINDOWS\System32
    4.16位系统目录,即C:\WINDOWS\System
    5.Windows目录,即C:\WINDOWS
    6.进程当前目录。(非安全方式加载时则为第2个加载)
    7.PATH环境变量中所列目录。
    可以见的,由上而下,如果1你觉得不能解决就试试2,依次类推。我觉得微软之所以设计这样的顺序,可能也有期望设计者按照这个顺序尝试放置DLL文件。