begin process at 2012 05 28 19:04:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Compiler un DLL depuis un fichier C ou C++


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

Compiler un DLL depuis un fichier C ou C++

samedi 14 mars 2009 à 02:03:46 | Compiler un DLL depuis un fichier C ou C++

JoGoiA

Salut à tous.
Je voudrais pouvoir utiliser des function C ou C++ (je ne sais pas trop lequel des deux mais je crois que c'est du C) qui sont contenue dans un DLL gràce à Lua.
Pour cela, je doit les wrapper.

J'ai donc récupéré le header de la bibliothéque et j'ai utilisé SWIG pour en faire un mappage Lua.
Jusque là, tout va bien (je crois...) et j'obtiens un fichier maBiblio_wrap.c
Pour pouvoir l'utiliser avec l'interpréteur Lua, je dois compiler ce fichier .c pour en faire un DLL et c'est là que je coince.

J'ai essayé de créer un projet DLL avec DEV-CPP mais il me créé automatiquement deux fichiers : dllmain.cpp et dll.h
Dans le fichier dll.h, il me demande de remplacer dll.h par mon header or... je n'en ai pas.

Je n'ai qu'un seul fichier .c, construit d'aprés le header de ma bibliotheque.
N'étant vraiment pas calé en C/C++, je séche un peu.

Comment peut on généré un DLL à partir d'un seul fichier .c ?
Merci d'avance ^^
dimanche 15 mars 2009 à 10:23:29 | Re : Compiler un DLL depuis un fichier C ou C++

juju12

ben tu vires dll.h et la ligne #include "dll.h" dans le fichier .cpp
par contre faut indiquer au compilateur quelles fonctions exporter, tu peux sans doute (je connais pas DevCpp) le faire via un fichier .def à ajouter.
structure minimale de ce fichier :

LIBRARY Nom_de_la_Dll
EXPORTS
   Fonction1
   Fonction2
   ...

dimanche 15 mars 2009 à 19:12:46 | Re : Compiler un DLL depuis un fichier C ou C++

JoGoiA

Ok.
En fait, j'ai trouvé ce merveilleux petit tuto :
http://www.cygwin.com/cygwin-ug-net/dll.html
qui explique exactement étape par étape comment faire ce que je veux.
J'utilise donc GCC pour créer le fichier wrap.o que je dois maintenant transformer en DLL.
Seulement voila, bien que le fichier .o se soit compilé correctement aprés que j'ai rajouté les quelques fichier .h dont il avait besoin (les #include du fichier .c), lorsque je passe à l'étape suivante, j'ai plein d'erreurs, toutes du même type : "undefined reference to ..." une function. Les function qui posent probléme sont toutes des function de base de Lua et j'en conclus que mon fichier wrap utilise de nombreuses fonction Lua dont il connait l'existence (gràce au header...) mais pas les définition de celle-ci ou il ne peut pas les utiliser pour compiler le fichier DLL final...

Comment corriger ce problème ?
dimanche 15 mars 2009 à 20:07:08 | Re : Compiler un DLL depuis un fichier C ou C++

JoGoiA

Aprés avoir pas mal fouillé, j'ai bien vérifié que les function non référencées sont bien celle définies par lua.h qu'il m'a bien fallu joindre à mon fichier wrap.c lors de la création du fichier wrap.o
Donc, GCC devrait connaitre ces function.
J'ai trouvé plusieurs personnes quii ont le même problème que moi et qui ont trouvé une solution :
Lors de la demande GCC, je dois préciser le nom de ma biblio lua comme une option pour GCC. Seulement voila, j'ai une nouvelle erreur :
C:\MinGW\......\ld.exe: cannot find -lua

J'ai essayé de spécifier le chemin vers les bin de lua mais rien n'y fait...


Cette discussion est classée dans : fichier, compiler, dll, header, lua


Répondre à ce message

Sujets en rapport avec ce message

Compiler une Lib en dll [ par xbabilone ] Salut j'ai telecharge la zlibQue j'ai decompressé et jobtient des fichiers . c et .hAlors comment faire pour en faire un fichier .dll et un fichier.li Aide [ par rubaruba ] Bonjour les amisJe ne suis qu'un poussin dans le langage C, et vous soumets ce petit code que je na sais ni compiler ni exécuter: /* Affiche un messag appel des fonctions d'un fichier dll [ par hattabfethi ] Link [ par neophenix83 ] Bonjour,Je tente de compiler les sources d'un projet que j'ai récupéré, mais je me trouve face à un pb.Je veux compiler sous VC8, et lors de la compil programme compiler [ par henri12 ] salutj ai un programme dos freeware compiler mais je ne connais pas le compilateur peut etre du Cil lis des numeros dans un fichier texte qui sont sep comment lire à partir d'un fichier .dll et .ini? [ par halwas ] bonne programationbonjour,je veux avoir des information sur le materiel d'un pc en utilisant les fichiers .ini mais je ne sais pas co Appel d'une fonction contenue dans une dll [ par ybuchheit ] Bonjour, je souhaiterais appeler une fonction contenue dans une dll. Je n'ai pas le source de cette dll, le seul fichier dont je dispose est le .dll Fichier .LIB [ par norton ] Bonjour,J'ai écrit une Dll mais pour que elle fonctionne je dois inclure le fichier ".lib" dans l'executable. Le problème c'est que quand je compile m copie de fichier (DLL) [ par mariuscesar ] salut j'ai besoin d'un code en C me permettant de copie une DLL dans un répertoire. urgent svp!! je piannote en C (borland) environnement DOS pour cer LoadTGA() probleme ! [ par Dante41 ] Voila, pour mon jeu en 2D avec OpenGL j'utilise la fonction loadTGA(): bool LoadTGA(char *filename, UINT * uTex){ unsigned char TGAheader[12] = {0,


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,515 sec (3)

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