我编了一个动态链接库,生成了Dll1.dll和Dll1.lib文件。然后用MFC做了个测试程序,我把Dll1.dll和Dll1.lib两个文件拷贝到测试程序的debug目录下,并在测试程序中的  工程\设置\链接  中的 对象\库模块 下填了Dll1.lib。但编译时发现无法打开Dll1.lib文件的错误。请各位高手指点这是为什么?一般在什么情况下会出现这种错误。

解决方案 »

  1.   

    dll调用一般有两种方法
    隐式链接:
    将.LIB和.H文件COPY到使用端根目录下。
    #pragma comment(lib,"**.lib")
     #include "***.h"
    将.DLL文件放入DEBUG文件夹下即可使用显式加载:(必须防止名字改编,这个我常用)
    将.dll文件COPY到DEBUG中。
    调用HANDLE h=LoadLibrary("**.dll");
    定义函数指针接受DLL中的函数:
    typedef int (FUNCTION*)();//FUNCTION根据需要自己定义
    FUNCTION p=(FUNCTION)GetProcAddress(h,函数名);
    调用p函数
    FreeLibrary(h);释放资源
      

  2.   

    你的问题用#pragma comment(lib,"**.lib") 试一下
      

  3.   

    最有可能是路径错了将.LIB COPY到使用端根目录下。
      

  4.   

    .lib文件不要拷贝到debug目录下,拷贝到工程所在目录下
      

  5.   

    lib文件放到源代码文件目录,或者写作Debug\dll.lib。