Dll avec nasm et alink

Soyez le premier à donner votre avis sur cette source.

Vue 6 405 fois - Téléchargée 826 fois

Description

Utilisation de NASM et ALINK pour générer des DLL.
Exemple d'utilisation en Visual Basic et DEVCPP dans la source.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
337
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
15 avril 2006

Il faut utiliser math.lib. Apparemment Ibroman a reussi a le generer grace à dlltool. Ensuite ça doit être un import "math.lib"
Loadlibrary ça marche aussi mais c'est plus lourd.

quoique je viens de jeter un oeil ds les samples pour declarer ils utilisent
EXTERN MessageBoxA
IMPORT MessageBoxA user32.dll

Essaie et dit moi quoi. pour les 3 arguments tu ne doit pas t'en soucier l'os s'occupent de tout.
Messages postés
202
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
29 septembre 2008
2
Bonjour,

J'ai utilisé la dll math.dll du Zip d'IBROMAN en l'appelant à partir d'un programme en visual basic et tout se passe bien. Je souhaiterais pouvoir l'appeler à partir d'un programme Win32 écrit en asm (j'utilise Nasm et Alink). Je n'arrive cependant pas à le faire. Comment appelle-t-on un dll à partir d'un programme asm. J'ai essayé la fonction LoadLibraryA du kernel32 mais il me retourne une valeur nulle. J'ai cependant indiqué le chemin complet où j'ai placé la dll recherchée.
Est-ce la façon de procéder ou suis-je à côté de la plaque ?
Quelqu'un aurait-il un exemple d'appel de dll dans ce contexte ?

PS SIBI12 m'a parlé des 3 arguments d'appel de dll
mais je ne sais pas s'ils interviennent à ce niveau.
Messages postés
337
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
15 avril 2006

Les 3 arguments sont fourni pas l'OS effectivement. ça se passe au moment ou la dll est chargé en mémoire.

Regarde dans mes sources, il doit y avoir un code pour recuperer le cpuid du processeur. C'est pile ce que tu cherche. Mais ce n'est pas un ActiveX donc je ne sais pas si on peux l'utiliser en VBA. il faut essayer
Messages postés
202
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
29 septembre 2008
2
Bonjour SIBI12,
Si je me suis interessé aux dll c'est pour pouvoir les appeler à partir de projets VBA ou à partir de programmes Win32 que je souhaite créer dans le futur. J'ai bien vu que le langage asm n'est peut-être pas le plus adapté pour cet usage mais je ne souhaite pas (pour l'instant) me lancer dans l'apprentissage du langage C.
Je suppose que les 3 arguments en question sont passés lors du chargement de la dll (non visibles dans le projet VBA).
Je suppose que ces paramètres doivent être indiqués en clair lors de l'appel de la dll par un programme W32. Si tu as des exemples d'appels de dll par un programme assembleur - et sans doute de libération de la dll, je suis preneur.
Merci
Messages postés
337
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
15 avril 2006

MOV eax, 1 veux dire qu'on retourne la valeur 1 (Et donc tu recuperera cette valeur au moment de l'import de la dll en C ou en VB par exemple) qui signifie qu'il n'y a pas eu d'erreur.

On dépile 12 octet simplement parce que le système fournit 3 arguments à une fonction dllmain. En C voilà le prototype d'une fonction dllmain.

BOOL APIENTRY DllMain ( HINSTANCE hinst, DWORD raison, LPVOID reserv )

Je pense que tu devrais t'interressé au C avant de passé à de l'assembleur sous win32. l'assembleur n'est qu'un langage, win32 est une plateforme. C'est déjà pas simple de comprendre les mécanisme à la base de la plateforme... si tu dois comprendre en meme temps les "protocoles" de ces mécanisme tu va avoir du mal à t'en sortir. j'entend par protocole les différents passage de paramètres possible, le fait de retourner les valeur dans eax, les registre qui sont modifié lors d'appel de fonction, la signification des valeur de retour,...
Afficher les 12 commentaires

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 et codes sources.

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