Posez votre question Signaler

Comment utiliser une DLL en assembleur C/C++

radamenthys - Dernière réponse le 15 sept. 2003 à 00:56
Je voudrais juste connaître les librairies et les fonctions C/C++ pour ouvrir une DLL et ainsi pouvoir récuperer les fonctions qui s'y trouvent et également comment puis je faire pour le faire directement en assembleur si j'en ai besoin. Et enfin je voudrais si c'est possible que cela fonctionne autant avec linux qu'avec windows au quel cas j'aimerai aussi savoir comment faire une application pouvant s'installer et fonctionner sur ces 2 OS sans à avoir à recompiler mais juste par installation.
Lire la suite 
Réponse
+1
moins plus
Je vais pas pouvoir t'aider beaucoup, tout ce que je peux te dire
c'est que pour utiliser les DLL (je programme sous VisualC++ 6)
je fais quelque chose qui ressemble à ça:
(je te le fait de tête alors c'est pas garanti que ça compile.)

#include <windows.h>

int ( _stdcall * PointeurSurFonction ) (int,int);
HANDLE hLib=LoadLibrary("MaLibrairie.dll");
PointeurSurFonction=GetProcAddress("FonctionSomme");
int Resultat=PointeurSurFonction(2,3);
FreeLibrary(hLib);

Mais bon, si tu programme sur Linux, je pense pas que ça marche :)
(surtout le include windows.h)

Sans ces fonctions, cela me semble un peu complexe surtout que ces fonctions elles mêmes proviennent probablement d'une DLL du style kernel.dll ou je ne sais quoi (à voir...).

Mais bon, si tu as la chance d'y parvenir en assembleur, note bien
le _stdcall : il signifie que l'empilement des paramètres passés à la fonction n'est pas le même qu'en C (_cdecl) (ça doit être plus proche du Pascal) et c'est ainsi que les paramètres sont passés
dans les DLL Windows et autres probablement).

Pour ce qui est de faire tourner le programme sous Linux et Windows, je vois mal comment faire... ou alors tente le Java :)

Sur ces bonnes paroles (j'adore m'autocongratuler) je te souhaite de folles nuits de programmation.

A++
Ajouter un commentaire
Annonces
 
moins plus
Réponse
+0
moins plus
Ajouter un commentaire
Annonces
 
moins plus
Réponse
+0
moins plus
Merci pour tes explications, sa marche tres bien maintenant et sa m'a aidé pour linux je me débrouillerai, il doit bien y a voir une librairie quelque par. Je te remercie encore de ton aide.
Ajouter un commentaire
Réponse
+0
moins plus
Library = Bibliothèque
Bookshop = Librairie
Pour clarifier les esprits ;-)
Ajouter un commentaire
Ce document intitulé «  Comment utiliser une DLL en assembleur C/C++  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.