链接器错误:错误LNK2019:未解析的外部符号

时间:2013-10-21 05:31:31

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

我是C ++的新手,在运行我的应用时遇到了问题。我搜索了问题,但由于大多数结果是链接库,我开始了一个新的线程。

我有一个类CResizableDialog,我将继承自我的VtkDialogTest2对话框类。

VtkDialogTest2.h;

#pragma once

#include "CResizableDialog.h"


#ifdef _WIN32_WCE
#error "CDHtmlDialog is not supported for Windows CE."
#endif 

// VtkDialogTest2 dialog

class VtkDialogTest2 : public CResizableDialog
{
    DECLARE_DYNCREATE(VtkDialogTest2)

public:
    VtkDialogTest2(CWnd* pParent = NULL);   // standard constructor
    virtual ~VtkDialogTest2();
// Overrides
    HRESULT OnButtonOK(IHTMLElement *pElement);
    HRESULT OnButtonCancel(IHTMLElement *pElement);





// Dialog Data
    enum { IDD = IDD_DIALOG4 };

protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
    virtual BOOL OnInitDialog();

    DECLARE_MESSAGE_MAP()

public:
    afx_msg void OnBnClickedOk();
};

VtkDialogTest2.cpp

#include "stdafx.h"
#include "Geometry.h"
#include "VtkDialogTest2.h"


IMPLEMENT_DYNCREATE(VtkDialogTest2, CResizableDialog)

VtkDialogTest2::VtkDialogTest2(CWnd* pParent /*=NULL*/)
    : CResizableDialog(VtkDialogTest2::IDD, pParent),
{

}

VtkDialogTest2::~VtkDialogTest2()
{
}

void VtkDialogTest2::DoDataExchange(CDataExchange* pDX)
{
    CResizableDialog::DoDataExchange(pDX);
}



BOOL VtkDialogTest2::OnInitDialog()
{
    CResizableDialog::OnInitDialog();
    //some code


    return TRUE;  // return TRUE  unless you set the focus to a control
}

BEGIN_MESSAGE_MAP(VtkDialogTest2, CResizableDialog)
    ON_BN_CLICKED(IDOK, &VtkDialogTest2::OnBnClickedOk)
END_MESSAGE_MAP()

//some code

我无法弄清楚我做错了什么。我从Web下载了一个示例,该示例使用CResizableDialog.h类,完全相同,并将CResizableDialog.h和CResizableDialog.cpp复制到我的项目中。

我得到的错误是;

1>VtkDialogTest2.obj : error LNK2019: unresolved external symbol "public: __thiscall CResizableDialog::CResizableDialog(unsigned int,class CWnd *)" (??0CResizableDialog@@QAE@IPAVCWnd@@@Z) referenced in function "public: __thiscall VtkDialogTest2::VtkDialogTest2(class CWnd *)" (??0VtkDialogTest2@@QAE@PAVCWnd@@@Z)
1>VtkDialogTest2.obj : error LNK2019: unresolved external symbol "protected: virtual int __thiscall CResizableDialog::OnInitDialog(void)" (?OnInitDialog@CResizableDialog@@MAEHXZ) referenced in function "protected: virtual int __thiscall VtkDialogTest2::OnInitDialog(void)" (?OnInitDialog@VtkDialogTest2@@MAEHXZ)
1>VtkDialogTest2.obj : error LNK2001: unresolved external symbol "protected: static struct AFX_MSGMAP const * __stdcall CResizableDialog::GetThisMessageMap(void)" (?GetThisMessageMap@CResizableDialog@@KGPBUAFX_MSGMAP@@XZ)
1>C:\Users\Geometry.exe : fatal error LNK1120: 3 unresolved externals

任何意见都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

错误是因为我将CResizableDialog.h和CResizableDialog.cpp文件直接复制到项目文件夹中。后来我注意到它们没有显示在解决方案窗口中,也将它们复制到窗口中。之后,错误消失了。