Je ne comprend pas comment il est possible que ma variable "Msg" ci-dessous soit modifiée lors de sont appel:
Public Declare Function Telecom Lib "CEX" (ByVal Type1 As Byte, ByVal Type2 As Byte, ByVal Code As Short, ByVal Msgs As String, ByVal Tail As Short) As Short
Public Sub EnvoyerDemande(ByVal TypeTrame As TYPE_TRAME_OMRON_BTN, ByVal Trame As String)
Dim Msg As String
Msg = New String(" ", 255)
Telecom(T1, T2, Code, Msg, 0)
End Sub
Est-ce que quelqu'un a une idée?
Merci d'avance.
Si vous ne réussissez pas du premier coup, appelez ça « version 1.0 ».
C'est vous, avec votre déclaration "Public Declare Function Telecom Lib ...", qui indiquez comment la fonction est censée travailler avec ces arguments.
Si la fonction C++ ne la respecte pas, c'est peut-être que votre déclaration ne correspond pas à celle intrinsèque du code C++, ou que le code ne la respecte pas, etc...
Passez un "String" .NET directement à du code natif C++, et pas du code C++/CLI, c'est très louche.
Il y a de grosse chance que ce machin ne soit qu'un simple "char*" C qui laisse libre-cours aux actions du code natifs.
Concrètement, il ressemble à quoi le .h de la librairie C++ ?
Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
Je n'ai malheureusement pas accès au code c++ mais je comprend d'après votre réponse que mon code vb malgré une déclaration byval envoi tout de même la référence au code c++ ce qui lui permet de modifier ma variable.
Si vous ne réussissez pas du premier coup, appelez ça « version 1.0 ».
Généralement, quand on passe un truc comme une chaine de caractère à du code natif, il y a tout un décorum d'attribut pour gérer l'encodage, le layout de la variable, etc... et pas juste un "ByVal" tout mouillé.
Le fournisseur de votre Dll, il fournit pas un exemple d'appel à leur bidule depuis du code .NET ?
Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
Paramètre ByRef modifier par une fonction
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.