2013-10-21 2 views
-1

C++을 처음 사용하고 응용 프로그램을 실행하는 동안 문제가 발생했습니다. 나는 문제를 봤지만 대부분의 결과는 라이브러리를 연결하는 것과 관련하여 새로운 스레드를 시작했습니다.링커 오류 : 오류 LNK2019 : 해결되지 않은 외부 기호

나는 내 VtkDialogTest2 대화 클래스에서 상속 받고있는 CResizableDialog 클래스가 있습니다.

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에 지시해야합니다. 이렇게 정확한 문제의 수천은 여기에 수백 가지가 있습니다. –

관련 문제