Declare Function Lance Lib "USBLib" (ByVal hHandle As Integer, <MarshalAsAttribute(UnmanagedType.Struct)> ByRef pTransfer As DATA_ACQUISITION) As Integer
Bonjour, petite question qui n'a rien a voir, enfin en partie quand même ...
J'essaye de faire la même chose et j'ai cette erreur :
<<Le type n'a pas pu être marshalé, car la longueur d'une instance de tableau incorporée ne correspond pas à la longueur déclarée dans la disposition.>>
EN VB6 :
Public Type DATA_ACQUISITION
Calibrage As Byte
Voie(3) As ACQUISITION_VOIE
Config As ACQUISITION_CONFIG
Trig As ACQUISITION_TRIG
End Type
EN VB.NET :
<StructLayout(LayoutKind.Sequential)> Public Structure DATA_ACQUISITION
Dim Calibrage As Byte
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=12)> Dim Voie() As ACQUISITION_VOIE
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=6)> Dim Config As ACQUISITION_CONFIG
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=7)> Dim Trig As ACQUISITION_TRIG
'----------------------------------------------------------
Public Sub Initialize()
ReDim Voie(3)
End Sub
End Structure
Dans les structure en VB6 j'ai des byte et des long que j'ai transformé en byte et integer pour VB.NET. Visiblement ce serait la declaratation de tableau de structure (--Voie()--) qui poserai problème. Enfin je crois.
Je pensais avoir compris "en partie" la marshalisation mais alors là je suis perdu ... Si vous avez une idée
12 janv. 2009 à 21:09
Declare Function Lance Lib "USBLib" (ByVal hHandle As Integer, <MarshalAsAttribute(UnmanagedType.Struct)> ByRef pTransfer As DATA_ACQUISITION) As Integer
12 janv. 2009 à 21:04
J'essaye de faire la même chose et j'ai cette erreur :
<<Le type n'a pas pu être marshalé, car la longueur d'une instance de tableau incorporée ne correspond pas à la longueur déclarée dans la disposition.>>
EN VB6 :
Public Type DATA_ACQUISITION
Calibrage As Byte
Voie(3) As ACQUISITION_VOIE
Config As ACQUISITION_CONFIG
Trig As ACQUISITION_TRIG
End Type
EN VB.NET :
<StructLayout(LayoutKind.Sequential)> Public Structure DATA_ACQUISITION
Dim Calibrage As Byte
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=12)> Dim Voie() As ACQUISITION_VOIE
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=6)> Dim Config As ACQUISITION_CONFIG
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=7)> Dim Trig As ACQUISITION_TRIG
'----------------------------------------------------------
Public Sub Initialize()
ReDim Voie(3)
End Sub
End Structure
Dans les structure en VB6 j'ai des byte et des long que j'ai transformé en byte et integer pour VB.NET. Visiblement ce serait la declaratation de tableau de structure (--Voie()--) qui poserai problème. Enfin je crois.
Je pensais avoir compris "en partie" la marshalisation mais alors là je suis perdu ... Si vous avez une idée
12 avril 2008 à 17:59
Yop
Afyn
Navedac
11 avril 2008 à 23:12
10 avril 2008 à 22:52
C'est pas simple en .NET
Yop
Afyn
Navedac
Le savoir faire des cancres du grand sud ...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.