legaultp
Messages postés7Date d'inscriptionmercredi 25 février 2009StatutMembreDernière intervention 8 avril 2009
-
6 avril 2009 à 22:13
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 2014
-
7 avril 2009 à 22:10
->Salut à tous, j'ai une DLL qui demande le nom d'un fichier à l'entrée et le nom d'un fichier pour la sortie. Cette DLL fait le tri croissant numériue d'opération sur une CNC en se basant sur les coordonnées en x et en y de chacune des opération. Je doit faire cette opération pour un programme en VB et je me demande ce que je fait de pas correct! Pour le programme en VB, j'avait inscrit la commande suivante dans le module:
->Declare Function lecture Lib "C:\...\triage.dll" (ByRef fichierin As String, ByRef fichierout As String) End Module
->Puis, je fait appel à cette dernière de la façon suivante dans un form:
->Dim test1 As String test1 cheminacces & "temp.for" Dim test2 As String test2 cheminacces & codeclient lecture(test1, test2)
->Finalement, voici l'entête de cette DLL (en C):
->void __stdcall lecture(char *nomficin,char *nomficout)
->Le problème est assurément pas la DLL puisqu'elle fonctionnait dans un programme en C. Si vous voyez une erreur ou si vous avez une suggestion quelconque d'une fonction de tri qui existe déjà!!! Merci, Padp
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 Modifié par NHenry le 31/07/2016 à 18:10
Généralement les chaines de caractères sont passées par valeur à une DLL
Essaye avec ceci :
Declare Function lecture Lib "C:\...\triage.dll" (ByVal fichierin As String, ByVal fichierout As String)
Une variable String en VB est en fait un pointeur déguisé sur une zone mémoire contenant la chaine réelle. D'où le passage par valeur.
---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 Modifié par NHenry le 31/07/2016 à 18:11
Ah ben si, tu l'as déclarée comme Function.
En C effectivement elle ne retourne rien, il faut donc la déclarée comme Sub
---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #