typedef struct { CLS_NUMBER_OF_SWITCHES numOfLogins; CLS_AGENT_ACTIVITY pAgentInfo[5]; } CLS_AGENT_INFO, *PCLS_AGENT_INFO; typedef struct { CLS_SWITCH_ID lSwitchId; // Identification of switch where agent is defined CLS_AGENT_ID lAgentId; // A number identifying the trader/agent CLS_STATION_EX cStation; // Directory/Extension or desk number for station/turret CLS_AGENT_STATE lNewState; // A code indicating the new agent state CLS_AGENT_NAME cAgentName; char Reserved[79]; } CLS_AGENT_ACTIVITY,*PCLS_AGENT_ACTIVITY ; [StructLayout(LayoutKind.Sequential)] public struct CLS_AGENT_ACTIVITY { public Int32 lSwitchId; public Int32 lAgentId; [ MarshalAs( UnmanagedType.ByValTStr, SizeConst=21 )] public string cStation; public Int32 lNewState; [ MarshalAs( UnmanagedType.ByValTStr, SizeConst=21 )] public string cAgentName; [ MarshalAs( UnmanagedType.ByValTStr, SizeConst=80 )] public string Reserved; } [StructLayout(LayoutKind.Sequential)] public struct CLS_AGENT_INFO { public Int32 numOfLogins; public CLS_AGENT_ACTIVITY LoggedAgents; Hab hier zwei Structuren in C++ welche für Funktionsaufrufe verwendet werden und in einer DLL eingebunden sind. Ich muß nun diese Strukturen in C# definieren und verwenden, das funktioniert nicht 100%. Wie definiere ich das Array mit 5 Strukturen pAgentInfo[5] in der Struktur CLS_AGENT_INFO in C# ? Ich bekomm es nur hin da eine Struktur hinzubiegen, das Array schaff ich nicht. HILFE!! Für jede Hilfe bin ich vorab sehr dankbar, hab im Internet nichts gefunden. Gruss Thomas
Hi Thomas, kannst du noch n bisschen mehr Info geben? WAS geht nicht? Lässt es sich nicht kompilieren, oder verhält es sich einfach nur nicht, wie du es gerne hättest? Ralf
Hi Thomas! Versuche es doch mal damit:
1 | public struct CLS_AGENT_INFO { |
2 | public Int32 numOfLogins; |
3 | public CLS_AGENT_ACTIVITY[] LoggedAgents; |
4 | |
5 | public CLS_AGENT_INFO( Int32 numOfLogins ) { |
6 | this.numOfLogins = numOfLogins; |
7 | LoggedAgents = new CLS_AGENT_ACTIVITY[5]; |
8 | }
|
9 | }
|
Der Hintergrund ist folgender: In C# werden structs fast wie Klassen behandelt. Du kannst also auch Konstruktoren für structs definieren, in manchen Fällen musst Du sogar Konstruktoren verwenden. Gruß Markus
Danke sehr, das hat geholfen. Ich war ein Paar Tage offline. Was nicht funktionierte hat sich nachher als ein Problem ganz waonders herausgestellt. Besten Dank nochmals, Gruss Thomas
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.