建立一个MFC DLL工程A,在Project Setting--Link中设置output file name生成Adebug.lib, Adebug.dll;然后用另一个工程B隐式链接之,但是运行时提示失败:找不到Adebug.dll。
打开Adebug.lib,发现里面仍然充斥着A.dll?如果强行修改为Adebug.dll,则B工程链接失败

解决方案 »

  1.   

    Adebug.lib文件里应该只是一些符号。
    隐式连接包含头文件和lib文件,然后dll文件得放在搜索路径内
      

  2.   

    SORRY,说错了
    失败提示是:找不到A.dll(就是原工程名.dll)
      

  3.   

    这个主要是LZ的def中的lib没有修改过来的原因:
    在工程中的def文件中有个LIBRARY 就是LZ要到处的lib,名称应该改为"ADebug",
    但是LZ没有修改,所以有问题。
      

  4.   

    首先确认是否是路径问题,把dll文件与B的执行文件(exe或dll)放在一起。
    如果不是路径问题,则dll的生成方式可能会有问题。
      

  5.   

    明白了,thank u
    那我想实现debug版本的时候生成adebug.lib/dll,release的时候生成arelease.lib/dll,怎么办?在def文件中的#ifdef会被忽略
      

  6.   

    to ouyh12345(五岭散人):
    路径没有问题
      

  7.   

    在link选项的Project Options中可以设置自定义的lib文件名:/implib:"Adebug.lib"