E2034 Konvertierung von 'typ1' nach 'typ2' nicht möglich (C++)
Nach oben zu Compiler-Fehler und -Warnungen (C++) - Index
Für eine Zuweisung, eine Initialisierung oder einen Ausdruck ist die angegebene Typumwandlung erforderlich, aber die Umwandlung ist unzulässig.
In C++ konvertiert der Compiler einen Funktionszeiger in einen anderen nur dann, wenn die Signatur der beiden Funktionen übereinstimmt. Signatur bezieht sich auf die Argumente und den Rückgabetyp der Funktion. Ein Beispiel:
myex( int );
typedef int ( *ffp )( float );
test()
{
ffp fp = myex; // Fehler
}
Da myex ein int-Argument hat, fp dagegen ein Zeiger auf eine Funktion mit einem float-Argument ist, konvertiert der Compiler nichts.
Führen Sie in Fällen, in denen dies beabsichtigt ist, eine Typumwandlung durch:
myex( int );
typedef int ( *ffp )( float );
test()
{
ffp fp = (ffp)myex; // ok
}