typedef deklarations problem...
-
hallo,
ich soll eine Funktion aus einer DLL einbinden, die typedef definition meckert der compiler mir immer mit ", erwartet" an. Ich weiss nicht was da falsch sein soll, hat jemand eine idee?
typedef char SoRecId[40]; // Record-ID typedef char SoStr40[40]; // 40-Zeichen-String typedef char SoStr256[256]; // 256-Zeichen-String typedef long SoHandle; // Handle typedef long SoBool; // Boolean typedef long SoRetCode; // Return-Code #pragma pack(push,inc1) #pragma pack(1) /* byte alignment */ struct TSostaDbData { SoStr40 m_dbKey; short m_type; short m_bIsSearch; SoStr256 m_data; }; #pragma pack(pop,inc1) /* restore previous packing alignment */ // hier is der fehler drin ? typedef TRetCode (_stdcall *APROSDBSUCHE)(SoRecId* pSysID, SoBool IsStart, SoRecId* pSatzId, TSostaDbData* pSearchData, long lNumOfRecords);in delphi sieht sie so aus:
TAllgDBSuche = function(var SysID:SatzIDTyp; Iststart:longint; var SatzID:SatzIDTyp; SuchDaten:UmwDatenKomPtrTyp; FeldZahl:longint):longint; stdcall;
-
habs gefunden.
typedef long (_stdcall * APROSDBSUCHE)(SoRecId* pSysID, SoBool IsStart, SoRecId* pSatzId, TSostaDbData* pSearchData, long lNumOfRecords);
-
Hi,
ich vermute mal, daß es keine Schwierigkeiten geben dürfte, Deinen eigenen Typ zu nehmen, aber der heißt SoRetCode und nicht TRetCode.
Was ich eigentlich wissen wollte: warum definiest Du SoBool als long anstatt als char? Eigentlich würde ja ein einziges Bit reichen und Du nimmst gleich 32 davon ...
Gruß,
Christian