Problem mit Funktionspointer

Gast #1788780
Lesenswert?
• ▲
▼
Ich bekomme folgende Fehlermeldung.

Error[Pe167]: argument of type "void *" is incompatible with parameter 
of type "void (void) *"

Ich habe eine Funktion die ist wie folgt deklariert.

BYTE Timertestfunktion(void* CallBkFuntion, DWORD TimeOut)

in dieser Funktion wird eine 2. Funktion aufgerufen.

Bibfunktion(&TIDMsgRespTimer, CallBkFuntion, TimeOut);

Bei der Bibfunktion (CallBkFuntion) taucht dann auch die Fehlermeldung 
auf.

Die Übergabewerte kann ich bei beiden Funktionen nicht ändern.
Weiß jemand wie ich dieses Problem in den Griff bekommen könnte?

Gruß
#1788788
Lesenswert?
• ▲
▼
Micha schrieb:

> Die Übergabewerte kann ich bei beiden Funktionen nicht ändern.

Solltest du aber.

Pointer zurechtzucasten ist meistens ein sehr sicheres Indiz, dass 
irgendetwas nicht stimmt. Und einen void* in einen Funktionspointer 
casten zu müssen, ist ganz besonders übel.

Das hier
1
BYTE Timertestfunktion(void* CallBkFuntion, DWORD TimeOut)

sollte eigentlich so aussehen
1
BYTE Timertestfunktion(void (*CallBkFuntion)(void), DWORD TimeOut)
Moderator Persönliche Seite #1788804
Lesenswert?
• ▲
▼
Karl heinz Buchegger schrieb:
> Und einen void* in einen Funktionspointer
> casten zu müssen, ist ganz besonders übel.

Genauer gesagt: das ist vom C-Standard nicht gedeckt.  Man darf einen
Zeiger auf ein Objekt in einen Zeiger vom Typ void* casten und dann
zurück auf den Objektzeiger, aber Funktionszeiger darf man nur auf
andere Funktionszeiger casten, nicht auf Objektzeiger (und umgekehrt).

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.