C# Array of Struct in Struct Hilfe!

Gast #849204
Lesenswert?
• ▲
▼
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
#850009
Lesenswert?
• ▲
▼
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren