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


Anmelden zum Antworten