Hallo an Alle,
ich habe ein Problem mit einen Array of Char das ich an eine c .Dll übergeben möchte. Wenn ich meine Daten übergeben möchte kommt immer der gleiche Fehler:
"Der Typ konnte nicht gemarshallt werden, da die Länge einer eingebetteten Arrayinstanz nicht mit der im Layout deklarierten Länge übereinstimmt. "
Das Array ist im Debugger auch nur mit der Größe 2 angegeben das eigentlich 256 groß sein müsste hat jemand eine Idee???
Die Größe 2 kommt vom Eintrag *.* was auch drei Zeichen sind und die auch richtig in diesen Array eingefügt werden.
VB.NET-Quellcode
- Private Sub Button_Read_file_list_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Read_file_list.Click
- Dim Foulder As String
- Dim mode As Integer
- Dim Nr_of_input As Integer
- Dim pointer_to_Array As New DIRINF
- Dim array_of_filename As String
- Dim fdir As New FILEDIR
- Dim i As IntegerIf status(nDNCC_HANDLE) = 4 Then
- nResult = dncc_Connect(nDNCC_HANDLE)Thread.Sleep(50)
- Foulder = TextBox_Directory.Text
- mode = 0
- fdir.filename = TextBox_Directory.Text
- 'fdir.count = 0
- 'fdir.Start = 1
- nResult = dncc_OpenDir(nDNCC_HANDLE, fdir, mode)Thread.Sleep(250)
- ii = 0
- If nResult = 0 Then
- Do
- Nr_of_input = dncc_ReadDir(nDNCC_HANDLE, pointer_to_Array)
- array_of_filename = pointer_to_Array.filename
- ii = ii + 1Thread.Sleep(50)
- Loop While Nr_of_input <> 0Else MessageBox.Show("Failer open foulder", "failure")
- nResult = dncc_Disconnect(nDNCC_HANDLE)
- Thread.Sleep(250)
- End If
- nResult = dncc_CloseDir(nDNCC_HANDLE)
- nResult = dncc_Disconnect(nDNCC_HANDLE)Thread.Sleep(250)
- ElseMessageBox.Show("NC is not in Automatic mode", "Failure")
- End If End Sub