我作了一个导出类的的dll,在执行文件中调用的时候,出现如下错误:无法定位程序输入点??0CDatabaseRW@@QAE@XZ于动态链接库Connectdatabase.dll上。我在执行程序是把导入类的头文件放在一个新的头文件中,然后在。CPP用#include包括。

解决方案 »

  1.   

    class AFX_EXT_CLASS Yourclass
    {
    ...
    };
      

  2.   

    你可能已经改过DLL的导出了,这种情况可能需要重新编译使用DLL的程序。
      

  3.   

    建立目录 TestDLLEXE--->TestDLLEXE(放主工程源文件)
            TestDLLEXE--->TestDLL    (放.dll源文件)
            TestDLLEXE--->inc        (放公用.h文件,用到时#include "..\a.h")设置工程:TestDLLEXE以及TestDLL输出目录为..\DEBUG(对应release版本为..\release)
    设置库文件目录 Options中Directions目录中的Liberary files相应增加..\debug的目录
    在你的DLL中Alt+F7中有一个C/C++中preprocessor definitions编辑框添加AAA_EXPORTS定义,然后在头文件类定义之前添加
    #ifdef AAA_EXPORTS
    #define AAA_API __declspec(dllexport)
    #else
    #define AAA_API __declspec(dllimport)
    #endif
    然后在你的类的声明前添加AAA_API ,就象上面一样,在主工程中包括这个头文件,主工程中在ALT+F7的LINK选项卡(应该是这个选项卡,我这没环境)添加该DLL的.LIB文件。OK
      

  4.   

    这与Dll的导出方式有关,看看你用什么方式导出的Dll函数。如果采用C方式这种调用肯定不对!