Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

Winapi-Callback-Apientry





Frage

Hallo alle zusammen will mir windowsprogrammierung beibringen, aber ich hab da ein problem: ich kann mir nicht erklären, warum vor der WinMain-Funktion oder Nachrichtenbearbeitungsfunktion eines der obengenannten Wörter stehen muss. weiss halt nur, dass es ein typedef für __stdcall ist, aber wozu das? WEr kann mir helfen?

Antwort 1 von semi

Das hat mit der Reihenfolge der an eine Funktion übergebenen Parameter zu tun.
Bzw. in welcher Reihenfolge diese auf den Stack gelegt und wieder gelesen werden.
Dies ist auch abhängig vom Betriebssystem.

Bei Windows:

WINAPI = CALLBACK = __stdcall = C Aufrufkonvention (von links nach rechts, FIFO)

Anderer Grund ist wieder, dass der Compiler je nach Aufrufkonvention (C/Pascal) anders bei der Übersetzung vorgeht.
Bei C wird bei Funktionsnamen ein Unterstrich davor gesetzt. Bei Pascal werden sie in Großbuchstaben konvertiert.
Das alles geschieht bei der Übersetzung und braucht dich nur wenig zu interessieren.