Bonjour,
Je souhaite utiliser une Dll développée en C (Je n'ai pas les sources juste le .h) dans une application VB.net (VB 2008 Express).
Les fonctions de la Dll fonctionnent déjà dans une application Labwindows/CVI (en C).
J'ai l'impression que j'appelle mes fonctions de façon équivalentes dans mes applications CVI et VB.
Mais je voudrais savoir si je fait correctement ma déclaration et mon appel en VB. Mes compétences en VB sont assez minces.
Déclaration dans le .h de la DLL
Code CVI
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 // Déclaration dans la DLL __declspec(dllexport) int M_Connect(char *pszDestIP,unsigned short usPort,unsigned char ucSlaveAddr,int *piCId);
Code VB
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 // Code CVI int nStatus; char pcRemoteIP[16]; int piCId; unsigned short usPort=0; unsigned short ucSlaveAddr=0; // Récupération des paramètres de la connection TCP/IP // // Adresse IP : Chaine de caractère GetCtrlVal(panelHandle, PANEL_STR_IPADDR, pcRemoteIP); // Numéro de port GetCtrlVal(panelHandle, PANEL_NUM_PORT, &usPort); // Slave adresse GetCtrlVal(panelHandle, PANEL_NUM_SLAVE, &ucSlaveAddr); // Connection nStatus = M_Connect(pcRemoteIP, usPort, ucSlaveAddr, &piCId);
Merci d'avance pour vos réponses
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 ' Declaration des fonctions de la DLL ' Private Declare Function MDB_Connect Lib "LibMasterModbusTCP.dll" (ByRef pszDestIP As Char, ByVal usPort As Short, ByVal ucSlaveAddr As Short, ByRef piCId As Integer) As Integer ' Init interface ' Private Sub SupervisorModbus_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim psIPAddress As String Dim pcIPAddress As Char() Dim nStatus As Integer Dim usPort As Short Dim ucSlaveAddr As Short Dim s_iCId(1) As Integer ' Récupération des paramètres de la connection TCP/IP ' ' Adresse IP : TxtIPAddress = TextBox psIPAddress = TxtIPAddress.Text pcIPAddress = psIPAddress.ToCharArray() ' Numéro de port : NumPort = NumericUpDown usPort = NumPort.Value ' Slave adresse : NumSlaveId = NumericUpDown ucSlaveAddr = NumSlaveId.Value ' Ouverture d'une communication avec le TPLC ' nStatus = M_Connect(pcIPAddress(0), usPort, ucSlaveAddr, s_iCId(0)) End Sub
Partager