Hi,
I need an array with fix String lenghts and fix rows...
I do this...
=========================================
Imports System.Runtime.InteropServices
Public Class Class1
Public WPFFunktion As String
Public WPFFeld1 As String
Public WPFFeld2 As String
Public WPFFeld3 As String
Public WPFFeld4 As String
Public WPFFeld5 As String
Public WPFInfo As String
<StructLayout(LayoutKind.Sequential)> Public Structure MYSATZ
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=31)> Public FUNKTION As String
<MarshalAs(UnmanagedType.LPArray, ArraySubType:=UnmanagedType.LPWStr, SizeConst:=5)> Public TABELLE1() As String
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=31)> Public Info As String
End Structure
' Cobol Dll laden...
' ==================
Declare Function CALLMYFUNKTION Lib "CALLMY" (ByRef VARIADATEN As MYSATZ) As Integer
Public Sub MyCallProg()
' Statusfeld aus Cobol
Dim CblStatus As Integer
' Datenbereich erstellen
Dim MYSATZSATZ001 = New MYSATZ
' Daten vom Hauptprogramm in Linkage Bereich übertragen
' Standard Felder
MYSATZSATZ001.FUNKTION = WPFFunktion
MYSATZSATZ001.TABELLE1(1) = WPFFeld1
MYSATZSATZ001.TABELLE1(2) = WPFFeld2
MYSATZSATZ001.TABELLE1(3) = WPFFeld3
MYSATZSATZ001.TABELLE1(4) = WPFFeld4
MYSATZSATZ001.TABELLE1(5) = WPFFeld5
MYSATZSATZ001.Info = WPFInfo
' Cobol Programm aufrufen mit gefüllter Linkage...
CblStatus = CALLMYFUNKTION(MYSATZSATZ001)
' Standard Felder
WPFFunktion = MYSATZSATZ001.FUNKTION.Trim(" ")
WPFFeld1 = MYSATZSATZ001.TABELLE1(1).Trim(" ")
WPFFeld2 = MYSATZSATZ001.TABELLE1(2).Trim(" ")
WPFFeld3 = MYSATZSATZ001.TABELLE1(3).Trim(" ")
WPFFeld4 = MYSATZSATZ001.TABELLE1(4).Trim(" ")
WPFFeld5 = MYSATZSATZ001.TABELLE1(5).Trim(" ")
WPFInfo = MYSATZSATZ001.Info.Trim(" ")
End Sub
End Class
=========================================
But it will not work...
For this I need an array with:
One WPFField with 10 Characters (String)
And 5 Rows (5 Times WPFField)
What is wrong?
Best Regrads
Bernd