Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : [URGENT] Passer des arguments a une DLL [ Archives / Newbii ] (BlackWizzard)

mardi 2 juillet 2002 à 01:05:15 | [URGENT] Passer des arguments a une DLL

BlackWizzard

Administrateur CodeS-SourceS
Bonjours, je voudrai creer un dll en asm (ce qui est fait) mais je n'arrive pas a passer des arguments a la seul fonction de cette dll.

imaginons le code suivant ::

msgB proc DTexte:DWORD, DTitre:DWORD

invoke MessageBox,NULL,addr DTexte,addr DTitre,MB_OK

ret

msgB endp


avec un prog VB, j'appel la dll de cette facon ::

Private Declare Sub msgB Lib "test.dll" (DTexte As String, DTitre As String)

Private Sub Form_Load()
msgB "Voici le texte", "Voici le titre"
End Sub



mais j'obtient une mesagebox avec des caracteres bizard et pas du tout mon texte.
je voudrais savoir comment faire pour passer des arguments correctement! (de type string et long)

Merci d'avance!
[BlackWizzard]

vendredi 5 juillet 2002 à 18:29:40 | Re : [URGENT] Passer des arguments a une DLL

PierreF

Moi j'ai déjà eu ce problème!
Mais avec une DLL en C++. Je savait que ma DLL est bonne, donc j'avais un pb dans la déclaration du la fonction dans le VB.

Je pense que tu à le même pb. Par defaut VB déclare le paramètre comme étant ByVal. il fait une copie de la valeur. Toi tu veut un pointeur sur la donnée tu doit mettre ByRef

Essay donc de déclaré ta fonction comme ca:
Private Declare Sub msgB Lib "test.dll" (byref DTexte As String,byref DTitre As String)


vendredi 5 juillet 2002 à 19:07:26 | Re : [URGENT] Passer des arguments a une DLL

BlackWizzard

Administrateur CodeS-SourceS
ça fonctionne!
merci!


[BlackWizzard] [http://blackwizzard.d2g.com]


-------------------------------
Réponse au message :
-------------------------------

Moi j'ai déjà eu ce problème!
Mais avec une DLL en C++. Je savait que ma DLL est bonne, donc j'avais un pb dans la déclaration du la fonction dans le VB.

Je pense que tu à le même pb. Par defaut VB déclare le paramètre comme étant ByVal. il fait une copie de la valeur. Toi tu veut un pointeur sur la donnée tu doit mettre ByRef

Essay donc de déclaré ta fonction comme ca:
Private Declare Sub msgB Lib "test.dll" (byref DTexte As String,byref DTitre As String)



vendredi 5 juillet 2002 à 20:38:19 | Re : [URGENT] Passer des arguments a une DLL

PierreF

Maintenant que tu sais comment faire et utiliser un DLL faite en asm tu peut mettre un tutoriel stp, car je ne sais pas faire un DLL en asm (ni en VB)

mercredi 10 juillet 2002 à 22:30:23 | Re : [URGENT] Passer des arguments a une DLL

PierreF

Quand dans VB tu met ByRef vb te donne un pointeur sur ce qui te donnerait si tu mettais byval
Les strings VB sont des pointeurs (char * en C/C++). Donc si tu met ByRef VB te donne un pointeur sur un pointeur! (char ** en C/C++)

Mais VB conseille de mettre ByVal (ce evite les pointeur sur des pointeur)!


lundi 3 novembre 2003 à 13:11:09 | Re : [URGENT] Passer des arguments a une DLL

Arpent

Ouais, un petit tut sur l'asm, stp BlackWizzard !
On aimerai bien avancer un peu aussi dans l'histoire...
Merci d'avance !
Arpent
Il n'y a qu'une Vérité, je la cherche



Cette discussion est classé dans : dll, passer, arguments, msgb, dtexte


Répondre à ce message

Sujets en rapport avec ce message

Probleme de dll! (arguments...) [ par BlackWizzard ] salut les pro!voila, G une fonction contenu dans une dll mais cette fonction, je ne sait pas comment lui ajouter des arguments...voici un extrait du c Fonction DLL avec arguments [ par Arnotic ] Bonjour, J'ai une DLL avec une fonction qui prend 2 arguments (en C (char*, int). Lorsque je la charge j'ai aucun problème mais lors de l'appel à Création de DLL [ par HollowSpecter128 ] Salut à tous!Je voudrais savoir si qq1 pourrais montrer comment on fè pour créer 1 DLL entièrement en assembleur sous NASM ou FASM.Quoique pour FASM j passer en "mono-tache" sous XP ??? [ par toto8966 ] Bonjour a tous,Jaimerais pouvoir passer en mono-tache sous Windows XP, le temps nécessaire a l'exécution d'une routine assembleur et ensuite revenir a Passer en RING0 sous Windows XP ! [ par toto8966 ] Hello, Pour pouvoir placer du code en mode Ring0 jutilise jusqu'a présent le Driver TVicHW32. ( http://www.entechtaiwan.com/tvichw32.htm ) Ca fonction DLL sous masm32v8 [ par Stormy ] Serait-il possible de coder une DLL sous masm dans le but d'établir quelques fonctions très régulièrement utilisées. Le but étant de faire appel par l Registres windows [ par S2R ] Bonjour à tous, Est il possible de créer une clé dans la base de registre sans importer de dll?sinon comment fait-on pour importer une dll avec tasm?m DLL avec TASM ??? [ par Maxilie ] Voila, je voudrais créer une DLL avec tasm pour m'en servir sous un prog en VBProblème :-comment compiler une dll avec TASM-la syntaxe du code est-ell Point d'entrée dans une Dll [ par thiosyiasar ] SalutJ'ai une Dll entre les main et j'utilise Dependency pour trouver les points d'entré.J'ai trois méthodes avec leur adresse d'entrée :- ConvertMetr segment partagé en masm32 [ par anthraxx ] bonjour a tous,je connais l'assembleur mais je suis pas tres habitué a masm32, et je me demandais ce qu'il faut mettre pour qu'un segment donné de ma


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,172 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.