struct an funktion übergeben



  • hallo,

    ich habe bereits in diversen foren gesucht und mit deren ansätze keine lösung für das problem gefunden. die funktion ist wie folgt deklariert:

    BOOL DoData2Display(G_FUNCTIONSTRUCT *p);
    

    Das struct wurde als typedef global angelegt:

    typedef struct 
    {
      ..........
    } G_FUNCTIONSTRUCT, *LPG_FUNCTIONSTRUCT;
    
    G_FUNCTIONSTRUCT	pDP;
    G_FUNCTIONSTRUCT	pDP_S;
    

    so versuche ich bislang vergebens das struct aufzurufen:

    void CGraph::DataTransfer(LPVOID pParam)
    {
    	if(pDP.d_dom != 0)
    	{
    		DoFT(pParam);
    		DoData2Display(struct G_FUNCTIONSTRUCT pDP);
    	}
    	else
    	{
    		DoData2Display(struct G_FUNCTIONSTRUCT pDP_S);
    	}
    }
    

    gruß cappaja



  • Versuch mal:

    DoData2Display( &pDP );
    

    Du brauchst struct G_FUNCTIONSTRUCT nicht im Funktionsaufruf mit anzugeben. Das braucht man nur in der DEklaration der Methode / Funktion, damit der Compiler weiß, welche Parameter die Funktion / Methode haben will.

    Gruß Kimmi

    Edit: Vergessen, daß das ja ein Pointer sein soll.



  • das habe ich schon versucht allerdings folgende fehlermeldung erhalten: Konvertierung des Parameters 1 von 'G_FUNCTIONSTRUCT' in 'G_FUNCTIONSTRUCT *' nicht moeglich
    Kein benutzerdefinierter Konvertierungsoperator verfuegbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden



  • problem gelöst, ich musste lediglich einen pointer auf das struct vom typ
    *LPG_FUNCTIONSTRUCT anlegen und diesen übergeber, mittels pDP hatte es leider nicht geklappt.

    gruß cappaja



  • na wenn du

    G_FUNCTIONSTRUCT    pDP;
    

    definiert hast, dann mußt du auch den Zeiger auf dein Struct angeben, also so:

    DoData2Display( &pDP );
    


  • Oder du machst das so:

    LPG_FUNCTIONSTRUCT pDP;
    ...
    DoData2Display( pDP );
    

    Wofür hat man schlielich die typedefs weiter oben deklariert :).

    Gruß Kimmi


Anmelden zum Antworten