Je n'arrive pas à la faire marcher. J'ai ouvert un projet vide avec un fichier vide et j'ai tapé ceci (en VB.Net sous SharpDevelop) :
Option Explicit On
Imports System.Runtime.InteropServices
Public Class Struct
Public Sub main()
OnWrite()
OnRead()
End Sub
(son code)
End class
1 erreur : Aucune méthode main accessible avec une signature appropriée n'a été trouvé dans Essai (nom de mon projet)
___________________________
Sinon, question générale : de quel minimum a besoin un pgrm VB.Net pour démarrer ? La syntaxe de base, ce n'est pas çà :
Private Structure TYPETEST
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=8)> _
Dim Test1 As String
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=8)> _
Dim Test2() As Byte
Sub New(ByVal e as Object)
ReDim Test2(7)
End Sub
End Structure
Public Function ByteToStruct(ByRef Data() As Byte) As Object
Dim Handle As GCHandle = GCHandle.Alloc(Data, GCHandleType.Pinned)
Dim Pointer As IntPtr = Handle.AddrOfPinnedObject()
ByteToStruct = DirectCast(Marshal.PtrToStructure(Pointer, GetType(TYPETEST)), TYPETEST)
Handle.Free()
End Function
Public Function StructToByte(ByRef Obj As Object) As Byte()
Dim Data(Marshal.SizeOf(Obj)) As Byte
Dim Handle As GCHandle = GCHandle.Alloc(Data, GCHandleType.Pinned)
Dim Pointer As IntPtr = Handle.AddrOfPinnedObject()
Marshal.StructureToPtr(Obj, Pointer, False)
Handle.Free()
Return Data
End Function
Public Sub OnWrite()
Dim vTest As New TYPETEST(0)
Dim vData() As Byte
With New IO.FileStream("Test.txt", IO.FileMode.OpenOrCreate)
vTest.Test1 = "Manu"
vData = StructToByte(vTest)
.Write(vData, 0, vData.Length)
.Close()
End With
End Sub
Public Sub OnRead()
Dim vTest As New TYPETEST(0)
Dim vData() As Byte
With New IO.FileStream("Test.txt", IO.FileMode.Open)
.Read(vData, 0, vData.Length)
vTest = ByteToStruct(vData)
messagebox.show (vTest.test1)
.Close()
End With
End Sub
End Class
_______________________________________
Pendant 3 semaines, tout roulait ! Aucune aide à demander (les sources suffisaient). Mon projet perso marchait bien. Et depuis 2 semaines, je n'arrive pas à écrire une ch'ti struture à dans un fichier binaire. Et là, je n'arrive même pas à exécuter des sources fournies :je touche le fond ! Gloup, gloup....
Du coup, je suis obligé d'aider les autres en VBA pour passer le temps