Codez en assembleur dans vb

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 428 fois - Téléchargée 5 514 fois

Contenu du snippet

Pourquoi la merveilleuse fonction QBasic Call Absolute à t'elle disparu dans les versions Windows du Basic ? J'en sait rien ... mais je vous propose une Dll qui emule cette fonction et permet de rentrer du code essembleur directement dans VB !
Je ne sait pas si quelque chose de similaire existe déjà sur vbfrance ?

Conclusion :


Ca reste très instable comme fonction et difficile a manipuler car on est obligé de declarer un caneva de fonction pour que vb place sur la pile les paramettres.

A voir également

Ajouter un commentaire Commentaires
Messages postés
185
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
10 janvier 2008

Mais euh.... qu'est-ce que la fonction QBasic Call Absolute ?
Messages postés
161
Date d'inscription
mardi 19 juin 2001
Statut
Membre
Dernière intervention
10 avril 2007
1
Excellente source en tout cas :)
Messages postés
161
Date d'inscription
mardi 19 juin 2001
Statut
Membre
Dernière intervention
10 avril 2007
1
Ton truc c'est juste une dll en C bigane ... un post inutile amené à disparaître :>
Messages postés
46
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
12 février 2004

Salut,
VB6 Sp5, Windows2000 Pro SP2, Administrateur :
pas moyen de lancer la Dll, même déplacée dans Winntsystem32 ou dans le répertoire local.
Tu devais faire une dll en C, si tu as un problème de diffusion, utilise lcc32, il est libre. Voici une ancienne dll en vc6 pour vb6 que je me suis fait il y a quelques temps :

VBASM.DEF:
;-----------------------------------------
; Fichier de definition de la DLL
;-----------------------------------------
LIBRARY "VbAsm" ; nom de la bibliotheque
DESCRIPTION 'VbAsm Windows Dynamic Link Library'
EXPORTS
InvertLong ; Inversion d'un entier long
InvertInteger ; Inversion des octets d'un integer

// VbASM.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"

BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved)
{
return TRUE;
}

// -------------------------------------------------------------------------
// Inverse les octs d'un long
// -------------------------------------------------------------------------
void WINAPI InvertLong( long *ptdw )
{
register char tmp;

tmp = ((char*) ptdw)[3];
((char*) ptdw)[3] = ((char*) ptdw)[0];
((char*) ptdw)[0] = tmp;
tmp = ((char*) ptdw)[2];
((char*) ptdw)[2] = ((char*) ptdw)[1];
((char*) ptdw)[1] = tmp;
}

// -------------------------------------------------------------------------
// Inverse les octs d'un word
// NB: Celui ci est transmis sous forme d'un long.
// -------------------------------------------------------------------------
void WINAPI InvertInteger( WORD *ptw )
{
register char tmp;
tmp = ((char*) ptw)[0];
((char*) ptw)[0] = ((char*) ptw)[1];
((char*) ptw)[1] = tmp;
}

C'est un exemple, depuis j'ai abandonné cette dll inutile et mal programmée.
Tu peux la modifier pour y inclure ton code en asm.
A+
bigane.
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
Merci pour vos commentaires.
max12, CA MARCHE je t'assure, c'est pas super pratique mais ça marche.
(la difficulté reste tjrs de savoir si ça tourne sur tous les OS)
Dalamar, je connais pas vraiment le Delphi... à voir !
(A vrai dire j'utilise VB pour le plaisir un programme en C est "souvent" plus efficace)
Patrice99, je travail sur VB6 et WinXP j'ai placé une copie de la Dll dans le repertoire system32 de windows pour pouvoir la référencer dans VB, as tu pensé à faire cette copie ?
Afficher les 8 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.