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();