generer un .dll

generer un .dll - C - Programmation

Marsh Posté le 12-07-2005 à 15:33:14    

Voila, je voudrai savoir comment l'on fais pour créer un fichier .dll
 
J'ai beau chercher, j'arrive pas à trouver de tutoriel sur ce sujet.
 
 
(j'ai mis un sujet similaire dans divers)

Reply

Marsh Posté le 12-07-2005 à 15:33:14   

Reply

Marsh Posté le 12-07-2005 à 18:58:02    

blaise_laporte a écrit :

Voila, je voudrai savoir comment l'on fais pour créer un fichier .dll
 
J'ai beau chercher, j'arrive pas à trouver de tutoriel sur ce sujet.
 
(j'ai mis un sujet similaire dans divers)


Il faut un environnement de développent qui sait le faire (dev-Cpp, projet de type 'DLL')
 
Il faut écrire le code qui va bien. C'est une spécialité de Microsoft, donc tout est là
 
http://msdn.microsoft.com


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 12-07-2005 à 19:15:58    

il suffit de mettre l'option -shared quand on utilise ld, non ?

Reply

Marsh Posté le 13-07-2005 à 09:22:20    

en faite, je voulais utilser -shared, mais j'ai une erreur. Je ne dois pas utilisé la bonne syntax et j'arrive pas à trouvé des exemples sur le net.

Reply

Marsh Posté le 13-07-2005 à 16:06:19    

blaise_laporte a écrit :

en faite, je voulais utilser -shared, mais j'ai une erreur. Je ne dois pas utilisé la bonne syntax et j'arrive pas à trouvé des exemples sur le net.


A ma connaissance, -shared permet de faire des .so (Shared Objects Unixoides) et non des .dll (pur produit de Microsoft)...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 13-07-2005 à 16:20:31    

effectivement, je viens de regarder et le -shared ne colle pas trop  
 

Citation :

ld: supported emulations: i386pe
ld: emulation specific options:
i386pe:
  --base_file <basefile>             Generate a base file for relocatable DLLs
  --dll                              Set image base to the default for DLLs


 
et je passe la suite ... donc effectivement, ca a l'air un peu plus complexe :D

Reply

Marsh Posté le 13-07-2005 à 16:50:25    

d'aprés les différente info que j'ai eu, -shared dans un environnement windows construit des .dll
 
J'ai besoin de ce .dll dans le cadre de l'utilisation de Java Native Interface (JNI) et j'ai donc utilisé un tutoriel (http://perso.wanadoo.fr/jm.doudoux [...] hap030.htm) ou il y a cette ligne:
 

Citation :

gcc -shared -o mabibjni.dll TestJNI.c TestJNI.def


 
Si ce n'est pas -shared, comment fait-on? :??:


Message édité par blaise_laporte le 13-07-2005 à 16:56:22
Reply

Marsh Posté le 13-07-2005 à 16:58:50    

tiens ... un .def [:petrus75]
 
et bien ... Si cet exemple passe, pourquoi pas, hein :Dtu peux trouver comment faire un .def sur la msdn (c'est le fichier qui te permet de spécifier quels symboles vont être accessibles dans ta dll)

Reply

Marsh Posté le 18-07-2005 à 09:45:47    

Si je fais cette commande :  
 

Citation :


gcc -I"C:\Program Files\Java\J2SDK\include" -I"C:\Program Files\Java\J2SDK\include\win32" -shared TestJNI.c TestJNI.def -o mabibjni.dll


 
j'ai une erreur systeme m'informant que  "ld.exe a rencontré un problème et doit fermer. Nous vous prions de nous excuser pour le désagrément encouru."
 
Je suis vraiment coincé et j'arrive pas àcomprendre pourquoi.


Message édité par blaise_laporte le 18-07-2005 à 09:46:42
Reply

Marsh Posté le 18-07-2005 à 09:49:03    

Joli message ...
 
Tu peux nous montrer ton .def et les entêtes des fonctions que tu "publies" ?

Reply

Marsh Posté le 18-07-2005 à 09:49:03   

Reply

Marsh Posté le 18-07-2005 à 10:13:35    

Citation :

Joli message...


N'étant pas un forumiste acharné, il est possible que je fasse de erreurs dans mes messages ou explique mal mes probleme... désolé.
 
le .def:

Citation :


ExPORTS
Java_TestJNI1_afficherBonjour


 
mon programme TestJNI.c:

Code :
  1. #include <jni.h>
  2. #include <stdio.h>
  3. #include "TestJNI1.h"
  4. JNIEXPORT void JNICALL
  5. Java_TestJNI1_afficherBonjour(JNIEnv *env, jobject obj){
  6.     printf("Bonjour\n" );
  7.     return;
  8. }


 
et franchement, je n'arrive vraiment pas voir ce qui cloche, d'autant plus que j'ai suivie à la lettre un tutoriel plutot bien foutus.
 

Reply

Marsh Posté le 18-07-2005 à 10:22:44    

Citation :

N'étant pas un forumiste acharné, il est possible que je fasse de erreurs dans mes messages ou explique mal mes probleme... désolé.


Je parlais du message sorti par gcc [:joce]
 
 
Sinon, je n'ai pas trop de quoi tester sous la main, mais j'imagine que ca ne viendra pas du 'x' de ExPORTS :D


Message édité par theshockwave le 18-07-2005 à 10:23:14
Reply

Marsh Posté le 18-07-2005 à 11:26:49    

Citation :

j'imagine que ca ne viendra pas du 'x' de ExPORTS :D


 
je m'auto elus : [:alex_]
 
[:anathema]
 
[:anauff]
 
Merci beaucoup!
 
(et dire que ça fais une semaine que je trime sur ce rontondjoooo de probleme pour une bétise aussi minable...)

Reply

Marsh Posté le 16-10-2005 à 01:29:47    

salut je me suis aussi initier a la jni avec ce tuto et je l'applique a la lettre sur mon programme mais quand je fait a la dernière étape :gcc -shared -I”F:\JBuilder8\jdk1.4\include” -I”F:\JBuilder8\jdk1.4 \include\win32” -o ccarp.dll arp.c Cadre.def
 
il me sort ce message :
 
Warning: resolving Java_ccarp_Cadre_attaque by linking to Java_ccarp_Cadre_attaque@28
 
Use-enable-stdcall-fixup to disable these warnings
Use-disable-stdcall-fixup to disable these fixups
 
arp.c: undefined reference to Paquetrequest
arp.c: undefined reference to PaquetOpenAdapter
..........
collect2: ld returned 1 exit status
 
Voila en sachant que "Paquetrequest" et tout ces des fonctions que j'ai utiliser dans mon programme et qu'il font partie a la #include<Packet32.h>
 
donc si vous avez un truc a dire n'hésitez pas a posté merci.


---------------
Vive LINUX
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed