[C++] Utilisation d'une fonction d'une DLL ???

Utilisation d'une fonction d'une DLL ??? [C++] - Programmation

Marsh Posté le 13-05-2001 à 15:57:16    

J'arrive pas à utiliser une fonction d'une dll sans passer par LoadLibrary...
En fait, je voudrais mettre la déclaration de la fonction dans mon .H pour que le prog charge tout seul comme un grand la DLL...
En Delphi et en VB, je sais faire mais là, en c++ je sèche...
 
Un p'tit exemple sur cette fonction serait le bienvenu :
 
DLL : user32.dll
 
int ShowCursor(
  BOOL bShow   // cursor visibility flag
);
 
merci d'avance ! :jap:

Reply

Marsh Posté le 13-05-2001 à 15:57:16   

Reply

Marsh Posté le 13-05-2001 à 16:32:48    

??
comprend pas la ?
 
tu veux utiliser cette fonction ben tu tape ShowCursor (false); qq part.
 
c ca parce ke sinon explike mieux.


---------------
haahhahahaha == TheJackal
Reply

Marsh Posté le 13-05-2001 à 17:30:10    

j'ai donné cette fonction au pif pour que ce soit un exemple simple...
 
c'est bien expliqué je trouve... c'est toi qui a pas compris  :na:

Reply

Marsh Posté le 13-05-2001 à 17:40:21    

Si tu utilises VC++ tu dois juste inclure le header adéquat. Si ça marche pas c'est que la lib d'importation (qui contient les infos sur les fonctions exportées de la dll) n'a pas été trouvée: dans ce cas tu inclue le rép. des libs dans les chemins de recherche (tools/options/dir/lib).
 

*Syl* a écrit a écrit :

J'arrive pas à utiliser une fonction d'une dll sans passer par LoadLibrary...
En fait, je voudrais mettre la déclaration de la fonction dans mon .H pour que le prog charge tout seul comme un grand la DLL...
En Delphi et en VB, je sais faire mais là, en c++ je sèche...
 
Un p'tit exemple sur cette fonction serait le bienvenu :
 
DLL : user32.dll
 
int ShowCursor(
  BOOL bShow   // cursor visibility flag
);
 
merci d'avance ! :jap:



Reply

Marsh Posté le 13-05-2001 à 19:23:40    

>Amadeus : j'utilise C++Builder et je pourrais inclure le .lib mais j'ai pas envie, j'aimerais plutôt faire à la manière de ce que je faisait dans delphi... c'est peut-être pas possible de faire la même chose en c++ mais ça m'étonnerait, si personne sait, ben tant pis j'utiliserais le .LIB
 
 
un exemple en delphi de ce que je voudrais faire en c++ pour me faire mieux comprendre :
 
//Je déclare la fonction & la dll est chargée automatiquement au démarrage de mon appli
function ShowCursor(b: boolean) : integer ; stdcall; external 'user32.dll' ;
 
//Ensuite j'ai plus qu'à l'utiliser...
ShowCursor(false) ;

Reply

Marsh Posté le 13-05-2001 à 19:32:14    

tu peux pas sof avec LoadLibrary...
 
noublie pas d'exporter la fonction depuis la dll sinon, tu ne pourra pas l'utiliser


---------------
haahhahahaha == TheJackal
Reply

Marsh Posté le 13-05-2001 à 21:02:49    

Tu pourrais donner un exemple en c++ avec comme fonction test celle donnée plus haut comme ça j'aurais plus qu'à adapter par rapport aux autres fonctions ?
 
>noublie pas d'exporter la fonction depuis la dll sinon, tu ne pourra pas l'utiliser
 
ca je m'en fout, je vais utiliser seulement utiliser des dlls, pas en créer donc j'aurais le .h le .dll et le .lib je le génère moi même...

Reply

Marsh Posté le 13-05-2001 à 21:53:29    

faire les lib ?  
c celui qui a fait la dll qui de le donne en meme temps que la dll.
 :??:  :??:

Reply

Marsh Posté le 14-05-2001 à 09:00:58    

Hello,
 
si tu utilises C++ Buidler, c'est particulier. Depuis la version 5, les pb ont du être résolus. Mais jusqu'à la version 4, tu étais obligé d'utiliser le LoadLibrairy.
La raison: Le format des Dll produites avec les outils Micosoft ne respectent pas le format imposé par ... Microsoft !!!
Donc pas d'autres solutions...
 
Il me semble que depuis la version 5, l'importation des dll et la compatibilité avec les MFC se passent beaucoup mieux. Mais bon, j'ai pas essayé depuis.
 
a+

Reply

Marsh Posté le 14-05-2001 à 11:29:41    

On peut se passer de loadlibrairy sous tous les produits C++ Builder ou Borland C++.
 Il suffit de convertir le .lib avec "coff2omf.exe" qui se trouve dans le reprtoire de "bcb.exe"


---------------
[:seblamb] Moi aussi je veux grater dédé!!!
Reply

Marsh Posté le 14-05-2001 à 11:29:41   

Reply

Marsh Posté le 14-05-2001 à 14:58:23    

coff2omf.exe, t'es sûr que c'est avec Borland C++ ? moi, je le trouve uniquement dans le repertoire de VisualCafe  
j'vais essayer celui-là
 
non non, ça convertit pas les lib, chez moi ... ça convertit des .obj en chai pas quoi (d'ailleur c'est pas fait pour le c mais pour le java ).
t'aurais pas le nom de l'utilitaire en vrai ?
 
 
parceque pour l'instant, ma librairie ressemble à ça :
ð
plein de saloperies zkjehflkzuhelfjbjkslvj
 
 
c'eest inutilisable du coup !!

 

[edit]--Message édité par Moustaaki--[/edit]

Reply

Marsh Posté le 14-05-2001 à 15:11:06    

Je ne sais pas si c'est ce nom là pour tous les compilateurs borland mais c'est celui pour C++ Builder 4
J'ai la description exacte sous les yeux de ce prog dans l'aide de builder
 

Citation :


Coff2Omf est un outil en ligne de commande qui convertit un fichier bibliothèque d’importation COFF (InputFile) en un fichier bibliothèque d’importation OMF correspondant (OutputFile). Coff2Omf.exe se trouve dans le répertoire BIN de C++Builder. La syntaxe est :  
 
Coff2Omf [options] InputFile OutputFile
 
Coff2Omf convertit les symboles exportés publiquement dans la bibliothèque d’importation COFF en un jeu de symboles correspondant dans la bibliothèque d’importation OMF. Coff2Omf permet aux utilisateurs de C++Builder d’établir un lien avec des DLL Microsoft et tierces qui utilisent le format COFF. Coff2Omf ne convertit pas les fichiers .OBJ.
 
Exécutez l’outil Coff2Omf sur une bibliothèque d’importation COFF créée pour une DLL spécifique, et utilisez la bibliothèque d’importation obtenue pour lier les fichiers EXE et DLL de format OMF à la DLL COFF. Les commutateurs de Coff2Omf sont :


 
Ce programme existais deja quand j'ai eu mon premier compilateur windows en 95 (Borland C++ 4).


---------------
[:seblamb] Moi aussi je veux grater dédé!!!
Reply

Marsh Posté le 14-05-2001 à 15:12:31    

seblamb a écrit a écrit :

Je ne sais pas si c'est ce nom là pour tous les compilateurs borland mais c'est celui pour C++ Builder 4
J'ai la description exacte sous les yeux de ce prog dans l'aide de builder
 

Citation :


Coff2Omf est un outil en ligne de commande qui convertit un fichier bibliothèque d’importation COFF (InputFile) en un fichier bibliothèque d’importation OMF correspondant (OutputFile). Coff2Omf.exe se trouve dans le répertoire BIN de C++Builder. La syntaxe est :  
 
Coff2Omf [options] InputFile OutputFile
 
Coff2Omf convertit les symboles exportés publiquement dans la bibliothèque d’importation COFF en un jeu de symboles correspondant dans la bibliothèque d’importation OMF. Coff2Omf permet aux utilisateurs de C++Builder d’établir un lien avec des DLL Microsoft et tierces qui utilisent le format COFF. Coff2Omf ne convertit pas les fichiers .OBJ.
 
Exécutez l’outil Coff2Omf sur une bibliothèque d’importation COFF créée pour une DLL spécifique, et utilisez la bibliothèque d’importation obtenue pour lier les fichiers EXE et DLL de format OMF à la DLL COFF. Les commutateurs de Coff2Omf sont :


 
Ce programme existais deja quand j'ai eu mon premier compilateur windows en 95 (Borland C++ 4).




---------------
[:seblamb] Moi aussi je veux grater dédé!!!
Reply

Marsh Posté le 14-05-2001 à 16:44:38    

:eek2: j'ai Borland C++ 5.01 et je ne le trouve pas dans BIN ....
ya un prog qui s'appelle implib par contre, est-ce que ça pourrait étre ça ?
j n'arrive pas à l'utiliser mais c'est peut étre mes librairies qui ne sont pas conforme. (ce ne sont pas des lib kro$oft)
toujours est_il que je n'arrive toujours pas à utiliser mes fonctions dll...

Reply

Marsh Posté le 14-05-2001 à 16:57:08    

Qu'est ce que c'est que ce LoadLibrairies que j'essaye ça  ?

Reply

Marsh Posté le 14-05-2001 à 18:40:07    

Moustaaki a écrit a écrit :

:eek2: j'ai Borland C++ 5.01 et je ne le trouve pas dans BIN ....
ya un prog qui s'appelle implib par contre, est-ce que ça pourrait étre ça ?
j n'arrive pas à l'utiliser mais c'est peut étre mes librairies qui ne sont pas conforme. (ce ne sont pas des lib kro$oft)
toujours est_il que je n'arrive toujours pas à utiliser mes fonctions dll...




 
moi j'utilisais aussi implib pour créer le fichier .LIB associé à la DLL

Reply

Sujets relatifs:

Leave a Replay

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