J'ai un projet vb6 dans lequel j'utilise une bibliothèque dll pour effectuer certaines tâches. Pour cela, ajouter un module qui déclare toutes les fonctions de cette bibliothèque, tels que:Problème lors de l'appel de la DLL native VB6 à partir de VB.net Project
Declare Function myFunction Lib "abcdapi.dll" (ByVal hVar1 As Long, ByVal hVar2 As Long) As Long
Quand j'appelle cette fonction (et beaucoup d'autres semblables), je suis en mesure de faire le travail et correct pointeur Long est retourné. Mais quand j'essaie de faire la même chose avec VB.net (en important la même bibliothèque en utilisant dllimport et en appelant la même fonction), je n'obtiens aucun résultat. bien qu'il renvoie un pointeur mais cela ne produit pas un résultat correct.
Private Const ABCD As String = "abcdapi.dll"
<DllImport(ABCD)>
Public Shared Function myFunction(ByVal hVar1 As IntPtr, ByVal hVar2 As IntPtr) As IntPtr
End Function
Lorsque j'essaie d'appeler la fonction ci-dessus, cela ne fonctionne pas. J'ai même essayé de créer une DLL dans mon projet vb6 en utilisant la fonction et essayer d'utiliser le mot-clé imports pour appeler cette nouvelle DLL mais cela ne fonctionne pas non plus. Quel pourrait être le problème et comment puis-je le faire fonctionner.
Pouvez-vous afficher du code qui appelle la fonction? Comment "ça ne marche pas" de vb.net? Erreurs, mauvaises valeurs de retour, c'est quoi? – MarkJ
l'appel de fonction est ci-dessous: – Rahul
l'appel de fonction est ci-dessous: ibOK = TM1ValBoolGet (hUser, voTemp) Dans VB.net:Declare fonction TM1ValBoolGet Lib "tm1api.dll" (ByVal hUser comme long, ByVal vBool As Long) entier En vb.net: fonction publique partagée TM1ValBoolGet (ByVal comme IntPtr Huser, ByVal comme IntPtr vBool) As integer End Function Je n'ai pas de code de cette fonction donc pas sûr de ce se passe dedans mais les détails de la fonction peuvent être vus ici: http://publib.boulder.ibm.com/infocenter/ctm1/v9r5m0/topic/com.ibm.swg.im.cognos.tm1_api.9.5.2.doc /tm1_api_id14631tm1func_tm1valboolget.html –
Rahul