ECRIRE OU LIRE UNE STRUCTURE DANS UN FICHIER BINAIRE

cs_EBArtSoft
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
- 5 avril 2008 à 11:36
BarthOlivier
Messages postés
132
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
27 novembre 2012
- 12 janv. 2009 à 21:09
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/46290-ecrire-ou-lire-une-structure-dans-un-fichier-binaire

BarthOlivier
Messages postés
132
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
27 novembre 2012
1
12 janv. 2009 à 21:09
J'oubliais la fonction d'appel :

Declare Function Lance Lib "USBLib" (ByVal hHandle As Integer, <MarshalAsAttribute(UnmanagedType.Struct)> ByRef pTransfer As DATA_ACQUISITION) As Integer
BarthOlivier
Messages postés
132
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
27 novembre 2012
1
12 janv. 2009 à 21:04
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
Afyn
Messages postés
608
Date d'inscription
samedi 3 août 2002
Statut
Membre
Dernière intervention
22 décembre 2016

12 avril 2008 à 17:59
Et on l'a toujours ... c'est vrai

Yop

Afyn
Navedac
cs_EBArtSoft
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
11 avril 2008 à 23:12
Ouai je sais qu'on avait le probleme et on l'a toujours...
Afyn
Messages postés
608
Date d'inscription
samedi 3 août 2002
Statut
Membre
Dernière intervention
22 décembre 2016

10 avril 2008 à 22:52
On avait le problème avec la structure MIDI (tu te souviens EB ?)
C'est pas simple en .NET

Yop
Afyn
Navedac
Le savoir faire des cancres du grand sud ...
Afficher les 11 commentaires