저는 일반적으로 C#에서 작동하며이 문제에 대해서는 제게 당황 스럽습니다. 동적 링크 라이브러리를 만들 때 을 사용했습니다.클래스의 한 함수에 대해 LNK 2019 및 LNK2028 오류가 발생했습니다. 기타는 정상적으로 작동합니다.
난에 .cpp 파일에 이러한 방법을 사용// DeveloperConsoleManager.cpp : Defines the exported functions for the DLL application.
//
#include "stdafx.h"
#include "DeveloperConsoleManager.h"
namespace DeveloperConsoleManager
{
double DeveloperConsoleLogic::Add(double a, double b)
{
return a + b;
}
bool DeveloperConsoleLogic :: CheckforValidFile(CString fileName)
{
return false;
}
}
DeveloperConsoleManager.h
#pragma once
#include "atlstr.h"
#ifdef DEVCONSOLEMANAGER_EXPORTS
#define DEVCONSOLEMANAGER_API __declspec(dllexport)
#else
#define DEVCONSOLEMANAGER_API __declspec(dllimport)
#endif
namespace DeveloperConsoleManager
{
class DeveloperConsoleLogic
{
public:
// Returns a + b
static DEVCONSOLEMANAGER_API double Add(double a, double b);
static DEVCONSOLEMANAGER_API bool CheckforValidFile(CString fileName);
};
}
DeveloperConsoleManager.cpp
아래와 같이 I는 두 가지 방법을 정의
다른 프로젝트 (유형 : 응용 프로그램 (.exe)). 내가 솔루션을 빌드 할 때, 1 경고 C4273 경고 링커 오류
다음이 있습니다 : 'DeveloperConsoleManager이 :: DeveloperConsoleLogic이 :: 추가': 일치하지 않는 DLL 연동 E : \ md_69 \ developerconsolemanager \ developerconsolemanager.cpp 10
2 경고 C4273 경고 : 'developerConsoleManager :: DeveloperConsoleLogic :: CheckforValidFile': 일치하지 않는 DLL 연계 전자 : \ md_69 \ developerconsolemanager \ 오류 3 오류 LNK2028
16 developerconsolemanager.cpp : 해결되지 않은 토큰 (0A0004F1) "공공 : developerConsoleManager __cdecl 정적 부울 :: DeveloperConsoleLogic :: CheckforValidFile (클래스 ATL :: CStri "Public"함수에서 참조 된 CheckforValidFile @ DeveloperConsoleLogic @ DeveloperConsoleManager @@ $$ FSA_NV? $ CStringT @ _WV? $ StrTraitMFC_DLL @ _WV? $ ChTraitsCRT @ _W @ ATL @@@@@ ATL @@@ Z) : 무효 __thiscall의 CSaSsiConsoleUi :: UploadSsiCheck (무효) "(? UploadSsiCheck @ CSaSsiConsoleUi @@ $$ FQAEXXZ) E : \ MD_69 \ DeveloperConsoleUI SaSsiConsoleUI.obj
\오류 4 오류 LNK2019 : 확인되지 않은 외부 기호"공공 정적 부울 __cdecl DeveloperConsoleManager :: DeveloperConsoleLogic :: CheckforValidFile (클래스 ATL :: CStringT>>) "? CheckforValidFile @ DeveloperConsoleLogic @ DeveloperConsoleManager @@ $$ FSA_NV? $ CStringT @ _WV? $ StrTraitMFC_DLL @ _WV? $ ChTraitsCRT @ _W @ ATL @@@@ (공백) __thiscall CSaSsiConsoleUi :: UploadSsiCheck (void) "(UploadSsiCheck @ CSaSsiConsoleUi @@ $$ FQAEXXZ) E : \ MD_69 \ DeveloperConsoleUI \ SaSsiConsoleUI.obj
오류 5 오류 LNK1120 :이 확인되지 않은 외부의 E : \ MD_69 \ 디버그 \ DeveloperConsoleUi.exe이
"추가"방법에 대한 링커 오류가 없습니다.
링커 -> 입력 -> 추가 종속성에 이미 "DeveloperConsoleManager.lib"가 포함되어 있습니다. 정확하게 내가 뭘 잘못하고 있는지 찾아 내도록 도와주세요. 필요한 추가 정보를 추가하게되어 기쁩니다.
_'DeveloperConsoleManager :: DeveloperConsoleLogic :: Add ': 일관성없는 DLL 링키지 –
@ manni66 미안하지만 좀더 자세히 설명해 주실 수 있습니까 – RMad9248
고쳐주세요. 어쩌면 나머지는 수정 될 것입니다. –