Codez en assembleur dans vb

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 516 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
BozzoDodo Messages postés 185 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 10 janvier 2008
7 janv. 2005 à 21:59
Mais euh.... qu'est-ce que la fonction QBasic Call Absolute ?
cs_zappy Messages postés 161 Date d'inscription mardi 19 juin 2001 Statut Membre Dernière intervention 10 avril 2007 1
1 nov. 2003 à 01:44
Excellente source en tout cas :)
cs_zappy Messages postés 161 Date d'inscription mardi 19 juin 2001 Statut Membre Dernière intervention 10 avril 2007 1
1 nov. 2003 à 01:41
Ton truc c'est juste une dll en C bigane ... un post inutile amené à disparaître :>
cs_bigane Messages postés 46 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 12 février 2004
6 oct. 2002 à 21:21
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.
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
4 oct. 2002 à 18:39
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.