moloko2000
Messages postés16Date d'inscriptionmardi 5 août 2003StatutMembreDernière intervention26 août 2003
-
13 août 2003 à 12:05
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 2012
-
13 août 2003 à 14:52
Que signifie cette erreur ?
hop.def : warning LNK4017: s400_ipdetail@@YGPADHHQAD@Z statement not supported for the target platform; ignored
Je n'arrive pas à utiliser les fonctions de ma dll ,pourtant j'utilise le code suivant pour exporter
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 13 août 2003 à 12:37
- Si tu utilises le __declspec (dllexport) tu n'as normallement pas besoin de maintenir un fichier .DEF à moins que tu sois obligé de le faire pour ton autre programme.
- Tu exportes des noms décorés (C++) et non des noms C. Il faut donc remplacer:
#define export __declspec (dllexport)
par
#define export extern "C" __declspec (dllexport)
- Ton paramètre char[150] doit être remplacé par un char* car on ne peut pas définir la taille d'un tableau dans le prototype d'une fonction.
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 13 août 2003 à 14:45
Non pas du tout.
Le C++ exporte les noms des fonctions d'une DLL sous forme décorée (exemple: s400_ipdetail@@YGPADHHQAD@Z). Quand toi tu utilises une DLL, tu ne donnes pas le nom C++ mais le nom C (exemple: s400_ipdetail) de la fonction. Le extern "C" spécifie simplement au compilateur d'exporter la fonction selon la convention du C et non du C++.