cherwam07
Messages postés2Date d'inscriptionmercredi 20 avril 2005StatutMembreDernière intervention19 janvier 2009
-
20 août 2008 à 14:16
cherwam07
Messages postés2Date d'inscriptionmercredi 20 avril 2005StatutMembreDernière intervention19 janvier 2009
-
20 août 2008 à 23:52
Bonjour
J'aurai besoin de votre aide sur un problème concernant les DLL.
Je travail en C, j'ai créé une DLL avec devc++.
Donc quelque chose comme :
dll.h
#ifdef BUILDING_DLL
#define DLL_EXPORT __declspec (dllexport)
#else
#define DLL_EXPORT __declspec (dllimport)
#endif
DLL_EXPORT int maFonction(void);
dll.c
DLL_EXPORT int maFonction(void){
.
..
...
}
Et j'ai utilisé cette DLL dans un programme, fait également avec devc++, compilé
en incluant dll.h, et en linkant le fichier libdll.a qui avait été généré.
Fonctionnement impeccable.
Ca s'est gaté quand j'ai voulu utiliser cette DLL dans un code compilé avec visual studio.
J'y ai écrit un code C, dans un fichier .c, j'ai bien spécifié de compiler comme du C.
J'ai linké libdll.a (sinon ca ne compile pas, donc signe qu'il reconnait bien la librairie)
Et à l'execution : erreur de windows (envoyer un rapport d'erreur, blablabla), quand le programme
essai d'appeler une fonction de la DLL.
Et le comportement est le même si la DLL est dans le même repertoire OU NON, signe
qu'il ne la cherche même pas.
Alors si quelqu'un a une idée sur la cause de ce problème, il sera le bienvenu ;)
Je penche plutot pour un problème de configuration de visual studio, mais le problème
est peut-etre plus profond.
Pas bien compliqué n'est-ce pas ?? (ma vraie appli est plus fournie lol)
Avec DEVC++, l'application de test compile, et fonctionne très bien.
SI je place le même code (celui de l'application de test) dans Visual C++ (2008), en mettant dans les options du projet : compiler comme du C, à l'execution un terminal s'ouvre, "coucou" s'y affiche, et ensuite à l'appel de la fonction : erreur de windows.
Alors qu'en pensez vous ?
DEVC++ genérerait-il mal les DLL ?
Y a-t-il des options dans visual que j'aurai raté ??