J'ai un fichier d'en-tête nommé NetworkInterfaceInfoProvider.h. dans ce fichier d'en-tête i Déclarez une classe comme suit:Symbole externe non résolu lors de l'utilisation d'une bibliothèque
#ifndef INETWORK_INTERFACE_INFO_PROVIDER_H
#define INETWORK_INTERFACE_INFO_PROVIDER_H
#pragma once
/*#include "stdafx.h"*/
#include "IConfig.h"
#include "NetworkAddapterAddresses.h"
#include "InstaledAddapters.h"
namespace IRNetwork
{
class CLASS_DECLSPEC INet;
struct CLASS_DECLSPEC GenericIPAddress;
/*
* provide information about all network interface related adapters such as installed interfaces , addresses , best routes and ...
* TO DO: implement Other OS's
*/
class CLASS_DECLSPEC INetworkInterfaceInfoProvider
{
public:
INetworkInterfaceInfoProvider(void);
~INetworkInterfaceInfoProvider(void);
int32_t GetBestRouteTo(char* destIp,uint16_t port,ip_t *ip);
int32_t GetBestRouteTo(GenericIPAddress* ip);
private:
INet* snet;
};
}
#endif
quand je veux l'utiliser dans mon application console je suis l'erreur suivante linker
* Note: la bibliothèque de code ci-dessus a été lié à mon application de console. CLASS_DECLSPEC est la définition d'import/export dll *
erreur LNK2019: symbole externe non résolu « __declspec (dllimport) public: int __thiscall IRNetwork :: INetworkInterfaceInfoProvider :: GetBestRouteTo (char , court non signé, char () [65]) »(_ diablotin? GetBestRouteTo @ INetworkInterfaceInfoProvider @ IRNetwork @@ QAEHPADGPAY0EB @ D @ Z) référencé dans la fonction "void __cdecl test_adapters (void)" (? @@ test_adapters YAXXZ) testDhcpv4.obj testDhcpv4
qu'est-ce qui ne va pas ici?
ce que dit fichier de vidage 197 C4 0000B120 GetBestRouteTo @ INetworkInterfaceInfoProvider @ IRNetwork @@ QAEHPADGW4SocketTypeEnum @ 2 @ PAY0EB @ D @ Z = GetBestRouteTo @ INetworkInterfaceInfoProvider @ IRNetwork @@ QAEHPADGW4SocketTypeEnum @ 2 @ PAY0EB @ D @ Z (public?: int __thiscall IRNetwork :: INNetworkInterfaceInfoProvider :: GetBestRouteTo (char *, short non signé, enum IRNetwork :: SocketTypeEnum, char (*) [65])) sa vraie base sur ma syntaxe pour la déclaration de fonction –
comment je peux vérifier pour le voir est lié correctement ou non? J'ajoute la bibliothèque de ma DLL à l'entrée de la console de l'application de la console. est-ce suffisant? –
après avoir changé le type de configuration à la bibliothèque de liens dynamiques (DLL) tout fonctionne correctement –