begin process at 2012 05 29 14:17:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Système

 > 

Autre

 > 

Problème compilation DLL


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème compilation DLL

mercredi 11 juin 2008 à 16:15:39 | Problème compilation DLL

boponfire

Bonjour;

Je souhaite compiler une DLL (que nous appelerons maDLL) en C avec MinGW qui utilise elle même une autre DLL(que nous appelerons externAPI, j'ai à ma disposition le externAPI.h, le externAPI.lib et le externAPI.dll de cette librairie mais pas les sources, j'inclus donc le externAPI.h dans "maDLL.cpp" , je passe le .lib en paramètre au linker et au moment de compiler j'obtiens un beau : "undefined reference to `_Z15apiFonction@0'".

Dans le .h on peut voir que les fonctions de la DLL sont déclarés en "__stdcall  (j'ai essayé de passer le paramètre -add-stdcall-alias mais même résultat).

Pour faire plus simple voici la commande et le retour:

$ g++ -Wl, externAPI.lib -add-stdcall-alias -shared -o maDLL.dll maDLL.cpp

C:/DOCUME~1/user/LOCALS~1/Temp/ccfqWLD8.o:maDLL.cpp:(.text+0x129): undefined reference to `_Z15apiFonctionv@0'
collect2: ld returned 1 exit status


Je crois que la DLL que j'essaye d'utiliser a été compilée avec VS et qu'il y a donc un problème de compatibilité.
Comment faire, si possible, pour pouvoir utiliser cette DLL avec MinGW?

jeudi 12 juin 2008 à 13:57:52 | Re : Problème compilation DLL

pipocodesrc

Salut, ton lib fait le lien entre les déclarations utilisées dans ton code (par le biais du .h) et les exports de ta dll.
la compilation se passe bien code <-> h
Le link ne reconnait pas les entrées entre le lib <-> dll
Peux-tu regénérer le lib (implib) ?
Fait un impdef de ta dll pour voir les prototypes des fonctions exportées par la dll et compare les en dumpant la lib fournie si ce sont les mêmes.

Essaie alors:
handle=loadlibrary("")
typedef  void (*pfpipo) (char *s);  //prototype example (see exact prototype function in your provided header)
pfpipo pipo;
pipo=(pfpipo*)getprocaddress (handle,<name in .def>);
 cout<<endl<<" function "<<(pipo?"":" not ")<<" linked";
if (pipo) pipo ("coucou"); // so we can call it
freelibrary(handle);

bon courage



Cette discussion est classée dans : problème, dll, madll, lib, externapi


Répondre à ce message

Sujets en rapport avec ce message

problème de lien sous borland 2007 [ par redmoon357 ] bonjour,j'étudie l'informatique et je doit effectuer un projet qui consiste à créer un jeux avec la manette de la wii sur un PC.j'ai trouvé une librai Problème de dll et lib en C++ [ par sidhannowe ] Salut,C'est peut etre un problème récurrent sur le net mais après des heures de recherche je n'ai toujours pas trouvé de solution.Je dois utiliser une Problème avec dll croisées [ par basic_meu ] Bonjour !Je suis actuellement en train de développer une application qui compporte (entre autres) une dll.D'ordinaire ce genre de librairie ne me pose Problème génération fichier lib sous VC++ [ par tntk ] Bonjour à tous Encore une foie c'est moi [^^confus2], Sous Visual C++ j'arrive bien à upgrader des fonctions C en C++ dans un projet DLL (Win32 Dynam Problème OpenGL [ par GoldenEye ] Ca ressemble à un mess déjà posé mais ce n'est pas un mess déjà poséJe veux faire un prgm avec glut. J'ai mis dans les options settings de VC++ les li problème de lib et de dll... [ par Raoul12 ] je programme sous vc++6 et j'aimerais savoir s'il est possible de faire appel à une dll externe à un programme principal sans avoir à recompiler le pr Problème de compilation [ par norton ] Hello, J'ai crée une dll sous Visual C++ 6, la compilation c'est bien déroulée, j'ai donc ma DLL et mon fichier .lib.Mon problème c'est que si j'inclu Problème de compilation [ par PunkDude424 ] Bonjour, j'ai un problème avec la compilation de projet sous visual studio 2003Mon problème est le suivant : J'ai téléchargé les librairies RTSP LiveM Inclure une DLL avec le .lib [ par sandy27 ] j'aimerais savoir comment utiliser une librairie DLL lorsqu'on a le .lib. Je travaille en C sous Visual C++. Si quelqu'un avait un exemple de création


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales