방금 Visual Studio 2013에서 dll 프로젝트를 생성했습니다 :
New Project-> MFC DLL-> Next-> Check "MFC Extention DLL"및 완료.
이제 새 클래스를 추가합니다.
class CMyTest
{
public:
CMyTest();
~CMyTest();
int Test(){ return 1; }
};
다음으로 프로젝트를 컴파일하고 .lib, .dll 파일을 얻었습니다.
dll을 사용하는 다른 프로젝트에서 include, lib 디렉토리를 추가하고 .dll 파일을 .exe 파일 위치에 복사하고 .lib 파일을 Linker-> Input의 추가 종속성에 추가합니다.
이제 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
어디에 문제가 있습니까?
다음과 같이 Test 메서드를 선언해야합니다 (및 ctr, dctr도 포함).
__declspec(dllexport) int Test(){ return 1; }
__declspec (dllexport), 링커에 심볼을 DLL로 내보내도록 지시합니다.
여기에서 읽을 수 있습니다 : https://msdn.microsoft.com/en-us/library/dabb5z75(VS.80).aspx
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다