cs_Pistounade
Messages postés7Date d'inscriptionmardi 14 mars 2006StatutMembreDernière intervention 4 décembre 2009
-
4 déc. 2009 à 00:02
cs_Pistounade
Messages postés7Date d'inscriptionmardi 14 mars 2006StatutMembreDernière intervention 4 décembre 2009
-
4 déc. 2009 à 10:34
Au secours !! qui peux m'aider , je tente de faire appel à la fonction readData ( ecrite ci- dessous) , mais ca plante a chaque fois , moi et les pointeurs ca fait 2. Vb me donne un message d'erreur d'appel de la dll ( bad Dll calling convention).
QUi peux me dire ce que je dois ecrire dans mon titi (et s'il est bien defini) dans mon formload pour que l'appel de la fonction marche enfin.
Merci d'avance:
Private Sub Form_Load()
Dim titi(0) As Byte
tutu = ReadData(1, 0, 1, titi)
End Sub
' Module associé avec l'aide encommentaire :
Public Declare Function DTIReadData Lib "IBSETH.DLL" Alias "DDI_DTI_ReadData" (ByVal NodeHd As Long, ByVal dtiLength As Integer, ByVal dtiAddress As Integer, ByVal dtiDataCons As Integer, dtiData As Any) As Long
' Reads BYTE-organized process data from data interface;
' no Intel-Motorola-Conversion
' Handle : node handle of a data interface
' FromByteAddr: start address of the data to be read (byte address)
' nBytes : ammount of the data bytes to be read
' Data : pointer to an array of word with the data to be read
' Error codes will be returned
Public Function ReadData(ByVal Handle As Long, ByVal FromByteAddr As Integer, ByVal nBytes As Integer, ByRef Data() As Byte) As Long
ReadData = DTIReadData(Handle, nBytes, FromByteAddr, DTI_DATA_BYTE, Data(0))
End Function
cs_Pistounade
Messages postés7Date d'inscriptionmardi 14 mars 2006StatutMembreDernière intervention 4 décembre 2009 4 déc. 2009 à 10:11
J'ai telecharcher la declaration d'API sur le site de phoenix http://select.phoenixcontact.com/phoenix/dwl/dwlfr1.jsp?fct=relo3&lang=en&UID=2862327&prodid=&from=, mais c'est vrai que je l'ai un peu modifié car il n'utilisait pas la DLL IBSETH.DLL. J'ai peut être fait une erreur en modifiant, mais je voie pas bien ou . ( pour info j'utilise unr tete de station FL IL 24 BK-PAC).
Merci pour ton aide.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 4 déc. 2009 à 10:26
j'ignore la raison pour laquelle tu souhaites utiliser une autre dll
reste que ta déclaration d'API est incompatible avec la dll que tu souhaites utiliser.
Public Type T_DDI_DTI_ACCESS
dtiLength As Integer
dtiAddress As Integer
dtiDataCons As Integer
Data() As Byte
End Type
Public Declare Function DTIReadData Lib "IBDDIWNT.DLL" Alias "VB_DDI_DTI_ReadData" (ByVal NodeHd As Long,Byref ddi_dti_acc As T_DDI_DTI_ACCESS) As Long