2013-10-21 115 views
-1

我是C++的新手,在运行我的应用程序时遇到问题。我搜索了这个问题,但由于大多数结果都是链接库,我开始了一个新线程。链接器错误:错误LNK2019:无法解析的外部符号

我有一个类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 

我想不出什么我做错了。我从网上下载了一个使用CResizableDialog.h类的例子,并将CResizableDialog.h和CResizableDialog.cpp复制到我的项目中。

我得到的错误是;

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

任何输入将不胜感激。

+0

你是否在某些cpp文件中实现了这些方法并编译/链接了该文件? –

+0

'CResizableDialog'的实现似乎缺失。 –

回答

1

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

+2

您不能仅将文件复制到文件夹中,并希望IDE能够将它们提取出来,您必须通知IDE将实际使用的文件添加到项目中。在这里,有数百个,如果不是成千上万的这个确切问题的重复。 –

相关问题