已经将dll inculde到应用程序中,相应的.dll和.lib也放在应用程序的当前目录下面
请问下面的错误可能是由于什么原因造成的?Linking...
DSPTESTDlg.obj : error LNK2001: unresolved external symbol __imp__dsp_init
Debug/DSPTEST.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Creating browse info file...DSPTEST.exe - 2 error(s), 0 warning(s)

解决方案 »

  1.   

    需要将包含该函数的头文件包括进来。“将dll inculde到应用程序中”应该是将lib文件加到设置的连接中。可以使用VC自带的工具depend.exe查看你的dll是否导出了该函数。
      

  2.   

    我只include了 dll.h
    lib放在exe对应的目录下不就可以了吗
      

  3.   

    将 .lib 加入工程或者#pragma comment(lib, "xxx.lib")
      

  4.   

    你包含了头文件但是没有包含库文件,
    将 .lib 加入工程或者#pragma comment(lib, "xxx.lib")
      

  5.   

    上面把该说的都说了,加lib吧
    要不就直接LoadLibrary("xx.dll");
      

  6.   

    我也有同样的问题,我想问一下具体怎么做?
    1、我现在project菜单下的setting的Link下输入了xx.lib,不行
    2、把#pragma comment(lib, "xxx.lib")加到.h里,也不行
    3、在函数调用前面加入LoadLibrary("xx.dll");也不行是不是DLL的文件名和.h的文件名必须相同?
      

  7.   

    还有一点可能就是你没有写.def文件,才会在上面所有的情形下都不行。
      

  8.   

    编辑dll时你的导出声明要放在*.h
    将*.h加入你的工程。
    include "*.h"
    extern "C" __declspec(dllexport) ................
    #pragma comment(lib,"*.lib")
      

  9.   

    sorry,是
    extern "C" __declspec(dllimport) ................
      

  10.   

    谢谢,不过我试了一下,编译时错误如下error C2201: 'THIS_FILE' : must have external linkage in order to be exported/imported
      

  11.   

    我按照下面的方法用的
    extern "C" __declspec(dllimport) void a1()
    错误如下:
    error C2375: 'main1' : redefinition; different linkage
    说是和*.h的重复?
      

  12.   

    我的问题解决了,就是去掉include "*.h"
      

  13.   

    TO:wilehorse (野马) ,你写的DLL不对,导出函数你改为全局的。