【问题标题】:Create & Using Dll's On MFC Application在 MFC 应用程序中创建和使用 Dll
【发布时间】:2015-11-28 17:21:48
【问题描述】:

我刚刚在 Visual Studio 2013 中创建了 dll 项目:
新建项目->MFC DLL->下一步->检查“MFC 扩展 DLL”并完成。
现在,我添加新类:

class CMyTest
 {
  public:
CMyTest();
~CMyTest();

int Test(){ return 1; }

};

接下来,我编译了项目,得到了.lib、.dll文件。

在另一个项目(使用 dll 的)中,我只需添加 include、lib 目录并将 .dll 文件复制到 .exe 文件位置,然后将 .lib 文件添加到对链接器的附加依赖项->输入。
现在,我只是在 OnInitDialog() 方法上从 CMyTest 类创建一些对象:

CMyTest x;

当我尝试编译项目时,出现链接错误:

Error   3   error LNK2019: unresolved external symbol "public: __cdecl CMyTest::CMyTest(void)" (??0CMyTest@@QEAA@XZ) referenced in function "protected: virtual int __cdecl CUsingDllProjectDlg::OnInitDialog(void)" (?OnInitDialog@CUsingDllProjectDlg@@MEAAHXZ)   C:\Users\user\documents\visual studio 2013\Projects\UsingDllProject\UsingDllProject\UsingDllProjectDlg.obj  UsingDllProject
Error   4   error LNK2019: unresolved external symbol "public: __cdecl CMyTest::~CMyTest(void)" (??1CMyTest@@QEAA@XZ) referenced in function "protected: virtual int __cdecl CUsingDllProjectDlg::OnInitDialog(void)" (?OnInitDialog@CUsingDllProjectDlg@@MEAAHXZ)  C:\Users\user\documents\visual studio 2013\Projects\UsingDllProject\UsingDllProject\UsingDllProjectDlg.obj  UsingDllProject

问题出在哪里?

【问题讨论】:

    标签: c++ visual-c++ dll mfc


    【解决方案1】:

    你需要像这样声明 Test 方法(还有 ctr,dctr):

    __declspec(dllexport) int Test(){ return 1; }
    

    __declspec(dllexport),指示链接器将符号导出到 DLL。
    您可以在此处阅读:https://msdn.microsoft.com/en-us/library/dabb5z75(VS.80).aspx

    【讨论】:

      猜你喜欢
      • 2016-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-02
      • 1970-01-01
      • 2022-06-10
      • 2011-05-07
      • 1970-01-01
      相关资源
      最近更新 更多