CODEZ EN ASSEMBLEUR DANS VB

cs_Dalamar Messages postés 63 Date d'inscription samedi 22 décembre 2001 Statut Membre Dernière intervention 22 décembre 2003 - 4 oct. 2002 à 01:23
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
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/4691-codez-en-assembleur-dans-vb

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 2
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 2
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 ?
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
4 oct. 2002 à 14:56
Hum... ça à l'air sympa (quoiqu'un peu inutile mais jolie sur le principe) mais ça ne marche pas en VB6 : pas moyen de référencer la DLL !
En tout cas si j'avais le malheur d'avoir de l'assembleur à faire en VB, je ferais plutot une DLL en C que j'appelerais en VB : pas trop de bidouillage dans ce cas, car on peut tout à fait inclure proprement de l'assembleur en C.
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
4 oct. 2002 à 02:52
Clair :) Mais bon si sa marche c'Est le code le plus utile du site........
cs_Dalamar Messages postés 63 Date d'inscription samedi 22 décembre 2001 Statut Membre Dernière intervention 22 décembre 2003
4 oct. 2002 à 01:23
Pourquoi ne pas programmer en Delphi, qui propose d'insérer des morceaux de codes en assembleur, et qui est beaucoup plus puissant que Vb...

Vive Delphi!
Rejoignez-nous