C'est pas très claire les DLL !

C'est pas très claire les DLL ! - Programmation

Marsh Posté le 09-12-2001 à 17:56:36    

Bon voila mon problème je suis débutant dans la prog C et je dois faire un projet qui utilise une dll en C et une interface en java...
 
Alors bon je commence par faire une DLL avec VS C++ 6 et ben je comprends pas grand chose au code qu'il me sort le type...
Je suis complètement perdu... :(  
Je crois qu'il y a du boulot avant que je comprenne comment ça marche alors si quelqu'un pouvait me filer des cours ou un site pour m'aider.
 
Merci :jap:

Reply

Marsh Posté le 09-12-2001 à 17:56:36   

Reply

Marsh Posté le 10-12-2001 à 02:23:27    

Faut lui demander de creer une DLL la plus simple possible, ca doit etre 'DLL - Win32' ou un truc du genre. Evite tout ce qui est MFC.
 
Faut juste que je retrouve mon CD de Visual Studio et j'installe tout ca.

Reply

Marsh Posté le 10-12-2001 à 09:28:03    

Tu crees un projet Win32 Dynamic dll, et tu choisis dll that exports some symbols.
La tu auras un exemple d'un export de classe, de fonction, et de variable.

Reply

Marsh Posté le 10-12-2001 à 20:28:20    

Godbout c'est ce que j'ai fait ...
 
Et bon c'est pas top!! :sweat:
 
Ce qu'il me faut c'est un exemple simple avec les sources: d'un .c qui appel une dll qui fait genre a+b ....
 
Si c'est pas abusé de votre temps ......
 
merci :jap:

Reply

Marsh Posté le 10-12-2001 à 20:33:33    

ta dll c'est pour faire un plug in (genre winamp) ou alors une extension de ton exe ?

Reply

Marsh Posté le 10-12-2001 à 20:46:39    

C'est pour une partie de traitement rapide du projet!
(Traitement d'image) et l'interface est en Java...

Reply

Marsh Posté le 10-12-2001 à 20:49:39    

Si c'est pour reprendre avec du Java (je sais pas comment c'est possible mais bon) je pense qu'il faut un truc le plus simple et le plus standard possible.
Tu prends Win32 Dynamic-Link Library, empty DLL project. Il ne te reste plus qu'a ajouter un fichier source et c'est bon.

Reply

Marsh Posté le 10-12-2001 à 21:06:32    

merde je suis en train de m'emmeler les pinceaux aussi, alors que ca fait trois fois que je me penche dessus  
 
merde alors...

Reply

Marsh Posté le 10-12-2001 à 21:19:47    

Bon ca y est c'est revenu :D
 
Alors pour pas te faire chier tu fais du C/C++ normalement mais dans un projet dll.
Ensuite tu cree un fichier .DEF, et dedans tu ecris:
 
EXPORTS
nomdesfonctionsaexporter
...
...
 
Quand tu vas compiler tu auras un lib et une dll.
Tu les mets dans le rep de ton prog exe.
Tu inclues le .h de ta dll, le lib dans Projetc->Settings->Link, et tu compiles.

Reply

Marsh Posté le 10-12-2001 à 21:30:56    

Très bien c'est partit....

Reply

Marsh Posté le 10-12-2001 à 21:30:56   

Reply

Marsh Posté le 10-12-2001 à 21:32:53    

tiens moi au courant, je bosse aussi donc...

Reply

Marsh Posté le 10-12-2001 à 21:35:16    

Par contre j'me demande si ca va marcher avec le .h, parce qu'il faut que les fonctions soient aussi declarees en import.
Si ca marche pas dis le moi j'ai une autre solution ;)

Reply

Marsh Posté le 12-12-2001 à 12:07:58    

:cry: Je vais pas y arriver J'ai une erreur dans la creation de la DLL "end of file  c1010"
 
Arf je commence a comprendre quelque truc quand même :)
 
Allez je peux le faire...
 
Godbout Help :sweat:

Reply

Marsh Posté le 12-12-2001 à 13:18:55    

ouais en fait je crois que j'me suis un peu troue le cul sur le .DEF puisqu'il exporte les fonctions, mais de l'autre cote il faut les importer.
 
Le mieux a faire est de creer un projet DLL, et de mettre export some symbols.
 
Si tu regardes bien comment ils font tu devrais pouvoir y arriver.
 
Essaye et dis moi ce que tu comprends pas.
 
J'attends...

Reply

Marsh Posté le 12-12-2001 à 17:14:21    

Comment tu fais pour appeller une fonction d'une DLL ?
 
Tu inclue un .h ?
 
T'as une commande speciale ? :cry:
 
 
Merci :jap:

Reply

Marsh Posté le 12-12-2001 à 17:57:23    

En fait ca depend de ce que tu veux faire avec ta dll.
 
Tu as deux choix:
 
-Soit l'exe depend de la dll (dans ce cas .lib + .h a inclure)
-Soit la dll depend de l'exe (plug in winamp par ex, la y a juste besoin de la dll)
 
Dans quel cas tu es ?

Reply

Marsh Posté le 12-12-2001 à 21:21:54    

Je pense que l'exe depend de la dll...
 
Et forcement je sens que c'est le plus chiant...  :(

Reply

Marsh Posté le 12-12-2001 à 21:39:33    

Ben en fait pas forcement ;)
 
Quand tu fais un plug in t'as pas besoin de recompiler l'exe, seulement la dll et c'est bon.
Par contre dans ton cas tu devras recompiler surement l'exe aussi (la lib doit changer mais bon c'est pas sur).
 
Alors ce que tu as a faire c'est faire une dll that export some symbols, et devant tes fonctions a exporter tu mets le symbole que Visual a defini.
Tu mets tes declarations de fonctions, struct, etc... dans un .h.
Il faudra l'inclure dans ton .exe.
 
Une fois que tu as compile, tu devrais obtenir une dll et un .lib.
 
Dans l'exe, tu dois inclure ta lib (Project->Settings->Link) (faut la mettre dans le rep de l'exe aussi (debug ou rep courant je sais plus)).
Tu inclues aussi le .h.
 
Normalement ca devrait passer.
Si ca marche pas j'te fais un p'tit exemple et je t'envoie ca.

Reply

Marsh Posté le 13-12-2001 à 19:12:34    

Je veux bien un petit exemple baptiste7@club-internet.fr. :hap:
 
merci :jap:

Reply

Marsh Posté le 13-12-2001 à 19:17:40    

bon ben alors je torche ca apres 20h00 et j'envoie, si j'y arrive :D

Reply

Marsh Posté le 13-12-2001 à 20:09:00    

Au lieu de te les envoyer je prefere les mettre ici, on sait jamais si quelqu'un d'autre en a besoin.
 
J'ai commente un peu les sources, normalement tu devrais t'en sortir. Par contre pour l'interface java :??:
Moi j'ai fait un exe en C qui appelle une fonction dans une dll en C, c'est tout.
 
voila :)
 
http://site.voila.fr/godbout/Testdll.exe
http://site.voila.fr/godbout/Testexe.exe
 
Ca y est mon premier tutorial est en ligne :love: :lol:

Reply

Marsh Posté le 14-12-2001 à 14:00:56    

:jap: Merci je vais regarder Ca :wahoo: :wahoo: :wahoo: :wahoo: :wahoo: :wahoo:

 

[edtdd]--Message édité par Babekiller--[/edtdd]

Reply

Marsh Posté le 14-12-2001 à 14:20:11    

:sol: [:fifiz]
 
Tiens moi au courant :)

Reply

Marsh Posté le 14-12-2001 à 14:55:04    

GodBout, je te fais Chevalier De L'ordre de La DLL d'or :D

Reply

Marsh Posté le 14-12-2001 à 15:17:13    

[:yaisse2]

 

[jfdsdjhfuetppo]--Message édité par Godbout le 24-04-2002 à 14:17:54--[/jfdsdjhfuetppo]

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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