Konvertierung von 'float' in 'float &' nicht möglich



  • Ich bekomme bei dieser Anweisung:

    DWORD result = USMC_Start(SMCPar->CurrentDevice(), m_DestPos, SMCPar->Velocity(), SMCPar->StartParameters());
    
    DWORD USMC_Start( DWORD Device, int DestPos, float &Speed, USMC_StartParameters &Str );
    
    float Velocity();
    

    den Fehler

    Konvertierung des Parameters 3 von 'float' in 'float &' nicht möglich

    Warum sollte das nicht gehen?



  • Tja, weil das eine eine Referenz (fast Pointer, also integraler Typ) und das andere ein Fliesskommatyp ist. Und wir hatten vor kurzen sowas hier schonmal, das temporaere Objekte nur an const-Referenzen gebunden werden koennen. Eine einfache Loesung ist es den Rueckgabewert von SMCPar->Velocity() in eine lokale Variable zu speichern oder aber bei USCM_Start das & beim 3ten Parameter zu entfernen. Was aber letztendlich richtig ist, haengt von der Funktion von USMC_Start ab.



  • USMC_Start gehört zu einer DLL, kann ich also nicht ändern. Was meinst du denn mit

    Rueckgabewert von SMCPar->Velocity() in eine lokale Variable zu speichern



  • float Speed = SMCPar->Velocity();
    

Log in to reply