Je travaille normalement en C# et je suis fou d'esprit pour celui-ci. J'ai utilisé pour créer une bibliothèque de liens dynamiques.Erreurs LNK 2019 et LNK2028 pour une fonction dans une classe, d'autres travaux bien
J'ai défini deux méthodes comme indiqué ci-dessous
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;
}
}
J'utilise ces méthodes dans un fichier .cpp dans un projet différent (type: Application (.exe)). Quand je construis la solution, il y a des erreurs suivantes de l'éditeur de liens
Avertissement 1 avertissement C4273: 'DeveloperConsoleManager :: DeveloperConsoleLogic :: Ajouter': lien dll incompatible e: \ md_69 \ developerconsolemanager \ developerconsolemanager.cpp 10
avertissement 2 avertissement C4273: 'DeveloperConsoleManager :: DeveloperConsoleLogic :: CheckforValidFile': lien dll incompatible e: \ md_69 \ developerconsolemanager \ developerconsolemanager.cpp 16
erreur 3 erreur LNK2028: jeton non résolu (0A0004F1) « public: bool statique __cdecl DeveloperConsoleManager :: DeveloperConsoleLogic :: CheckforValidFile (classe ATL :: CStri ngT>>) "(? CheckforValidFile @ DeveloperConsoleLogic @ DeveloperConsoleManager @@ $$ FSA_NV? $ CStringT @ _WV? $ StrTraitMFC_DLL @ _WV? $ ChTraitsCRT @ _W @ ATL @@@@ ATL @@@ Z) référencé dans la fonction" public : __thiscall vide CSaSsiConsoleUi :: UploadSsiCheck (void) "(? UploadSsiCheck @ CSaSsiConsoleUi @@ $$ FQAEXXZ) E: \ MD_69 \ DeveloperConsoleUI \ SaSsiConsoleUI.obj
erreur 4 erreur LNK2019: symbole externe non résolu" public: bool statique __cdecl DeveloperConsoleManager :: DeveloperConsoleLogic :: CheckforValidFile (classe ATL :: CStringT>>) "(? CheckforValidFile @ DeveloperConsoleLogic @ DeveloperConsoleManager @@ $$ FSA_NV? $ CStringT @ _WV? $ StrTraitMFC_DLL @ _WV? $ ChTraitsCRT @ _W @ ATL @@@@ @ATL @@@ Z) référencé dans la fonction "public: void __thiscall CSaSsiConsoleUi :: UploadSsiCheck (void)" (? UploadSsiCheck @ CSaSsiConsoleUi @@ $$ FQAEXXZ) E: \ MD_69 \ DeveloperConsoleUI \ SaSsiConsoleUI.obj
Erreur 5 Erreur LNK1120: 2 unresolved externals E: \ MD_69 \ Debug \ DeveloperConsoleUi.exe
Il n'y a pas d'erreur d'éditeur de liens pour la méthode "Ajouter".
J'ai déjà inclus "DeveloperConsoleManager.lib" dans Linker -> Input -> Dépendances supplémentaires. S'il vous plaît, aidez-moi à savoir ce que je fais de mal. Je serais heureux d'ajouter toute information supplémentaire nécessaire.
_'DeveloperConsoleManager :: DeveloperConsoleLogic :: Ajouter ': incompatible dll linkage_ –
@ manni66 Je suis désolé mais pourriez-vous élaborer s'il vous plaît – RMad9248
Fixez cela. Peut-être que ça arrange le reste. –