Comment utiliser une DLL en assembleur C/C++ [Fermé]

radamenthys - 5 sept. 2003 à 13:19 - Dernière réponse :  Bob
- 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.
Afficher la suite 

5 réponses

+1
Utile
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++
Cette réponse vous a-t-elle aidé ?  
0
Utile
Ah j'oubliais, si tu aimes l'anglais, cette adresse est plutôt intéressante:

http://www.msdn.microsoft.com/library/en-us/dllproc/base/dynamic_link_libraries.asp
radamenthys - 9 sept. 2003 à 10:39
0
Utile
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.
0
Utile
Library = Bibliothèque
Bookshop = Librairie
Pour clarifier les esprits ;-)