我通常在C#中工作,並在這個我的智慧。我使用創建動態鏈接庫。錯誤LNK 2019和LNK2028在一個類中的一個功能,其他工作正常
如下所示
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
// 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;
}
}
我在使用這些方法在一個cpp文件我已經定義兩種方法一個不同的項目(類型:應用程序(.exe))。當我生成解決方案,有以下鏈接錯誤
警告1個警告C4273: 'DeveloperConsoleManager :: DeveloperConsoleLogic ::添加':不一致的dll鏈接E:\ md_69 \ developerconsolemanager \ developerconsolemanager.cpp 10
警告2警告C4273: 'DeveloperConsoleManager :: DeveloperConsoleLogic :: CheckforValidFile':不一致的dll鏈接E:\ md_69 \ developerconsolemanager \ developerconsolemanager.cpp 16
錯誤3錯誤LNK2028:無法解析令牌(0A0004F1)「市民:靜態布爾__cdecl DeveloperConsoleManager :: 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(class ATL :: CStringT >>)「(?CheckforValidFile @ DeveloperConsoleLogic @ DeveloperConsoleManager @@ $$ FSA_NV?$ CStringT @ _WV?$ StrTraitMFC_DLL @ _WV?$ ChTraitsCRT @ _W @ ATL @@@@ (?)UploadSsiCheck(CSASsiConsoleUi @@ $$ FQAEXXZ)E:\ MD_69 \ DeveloperConsoleUI \ SaSsiConsoleUI.obj
函數「public:void __thiscall CSaSsiConsoleUi :: UploadSsiCheck(void)」中引用的@ ATL @錯誤5錯誤LNK1120:2解析的外部E:\ MD_69 \調試\ DeveloperConsoleUi.exe
沒有爲 「添加」 方法沒有連接錯誤。
我已經在鏈接器 - >輸入 - >其他依賴項中包含了「DeveloperConsoleManager.lib」。請幫我弄清楚我到底做錯了什麼。 我很樂意添加任何所需的附加信息。
_'DeveloperConsoleManager :: DeveloperConsoleLogic :: Add':不一致的dll linkage_ – 2017-10-16 08:43:52
@ manni66對不起,請您詳細說明 – RMad9248
修復此問題。也許它修復了其餘的問題。 – 2017-10-16 09:22:55