' schrieb:Die Arrays müßtest Du halt dann rausnehmen, damit es nicht zu aufwändig wird für Dich. Ich muß nun leider los und kann erst am Montag weitermachen.
Ich sehe keine Arrays, oder zumindest keine die nicht fixed size sind, und damit ist es auch kein Problem.
Was ist ein fixed size Array?? Ganz einfach wenn Du eine Array Deklaration siehst die in eckigen Klammern eine Konstante enthält, geht es normalerweise um fixed size Arrays und die werden eben nicht als Pointer in eine Struktur eingefügt sondern als Ganzes.
Also:
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>
typedef struct
{
Module_Info Peril[MAX_MODULE_COUNT];
unsigned short Modul_Count;
unsigned short Rack_Count;
unsigned short Rack_Slot_Count[MAX_RACK_COUNT];
unsigned short Rack_Im_Type[MAX_RACK_COUNT];
unsigned char Rack_Is_Im_Available[MAX_RACK_COUNT];
unsigned char Rack_Is_Im_Plugged[MAX_RACK_COUNT];
} BusEnum;
</div>
Kommt in etwa auf einen LabVIEW Cluster wie folgt:
ModuleInfo aufsplitten und dann entsprechend MAX_MODULE_COUNT in den Cluster aufnehmen,
uInt16 Type_1;
uInt8 Plugged_1;
uInt8 Rack_1;
uInt8 Slot_1;
uInt8 Filler_1;
uInt16 Type_2;
uInt8 Plugged_2;
uInt8 Rack_2;
uInt8 Slot_2;
uInt8 Filler_2;
danach kommt noch
uInt16 Module_Count
uInt16 Rack_Count
uInt16 Rack_Slot_Count_1
uInt16 Rack_Slot_Count_2
uInt16 Rack_Im_Type_1
uInt16 Rack_Im_Type_2
uInt8 Rack_Is_Im_Available_1
uInt8 Rack_Is_Im_Available_2
uInt8 Rack_Is_Im_Plugged_1
uInt8 Rack_Is_Im_Plugged_2
et voila, da ist Dein kompletter BusEnum Cluster.
Die Callbackfunktionen sind natürlich anderer Tobak und hier kommst Du um eine Wrapper-DLL eigentlich nicht umhin.
Und nun geht es ab ins Wochenende, tschüss.
Rolf Kalbermatter