|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jun 2004
Città: Torino
Messaggi: 638
|
[C] Convenzioni per le chiamate a funzione
Ciao a tutti! Sto leggendo il libro di Charles Petzold "Programming Windows" ed ho qualche problema di comprensione. Premetto che ho una buona conoscenza di C, C++ e Assembler.
Ora mi sono trovato di fronte a dichiarazioni di funzioni del tipo WINUSERAPI int WINAPI MessageBoxA (HWND hWnd, LPCSTR lpText, LPCSTR, lpCaption, UINT uType); Allora...per la WINAPI il caro Charles dice che quest'ultima specifica una convenzione per le chiamate, in particolare come la macchina genera codice per inserire gli argomenti nello stack. Precisamente #define WINAPI __stdcall Poi nel secondo capitolo inizia ad usare anche WINUSERAPI. Qualcuno mi sa spiegare qual è la sua funzione? Qual è il numero di convenzioni massime che si possono usare per la definizione di una funzione? ![]()
__________________
Intel Core i5 10600K, Ram 2X16GB Kingston, MSI Z490 Tomahawk, AMD RX6900XT, OS Nvme Samsung 970 EVO Plus 1TB, Data Nvme Crucial P3 4TB, Seasonic Fanless P-520FL Platinum, Case Thermaltake P3 TG Pro |
![]() |
![]() |
![]() |
#2 | |
Member
Iscritto dal: Nov 2012
Messaggi: 126
|
Quote:
Il "numero massimo" di calling conventions da usare è ovviamente pari ad 1 ed uno soltanto! (__stdcall, in questo caso). WINUSERAPI è tutt'altra cosa e serve a dare direttiva al compilatore per il loading di dll a run-time. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:32.