__stdcall是函式呼叫約定的一種,函式呼叫約定主要約束了兩件事:
1.引數傳遞順序
2.呼叫堆疊由誰(呼叫函式或被呼叫函式)清理
常見的函式呼叫約定:stdcall cdecl fastcall thiscall naked call
__stdcall表示
1.引數從右向左壓入堆疊
2.函式被呼叫者修改堆疊
3.函式名(在編譯器這個層次)自動加前導的下劃線,後面緊跟一個@符號,其後緊跟著引數的尺寸
在win32應用程式裡,巨集apientry,winapi,都表示_stdcall,非常常見。
StdCall呼叫約定
被這些修飾關鍵字修飾的函式,其引數都是從右向左通過堆疊傳遞的 fastcall的前面部分由ecx,edx傳 函式呼叫在返回前要清理堆疊,但由呼叫者還是被呼叫者清理不一定。1 stdcall是pascal方式清理c方式壓棧,通常用於win32 api中,函式採用從右到左的壓棧方式,自己在退出時清空堆疊...
cdecl和stdcall呼叫約定 彙編演示
386 model flat,stdcall stack 4096 exitprocess proto,dwexitcode dword data val2 sdword 1result dword code main proc call example cdecl call example std...
stdcall 函式呼叫約定
c c 函式呼叫約定 c 語言有 cdecl stdcall fastcall naked pascal。c 語言有 cdecl stdcall fastcall naked pascal thiscall,比 c 語言多出一種 thiscall 呼叫方式。1 cdecl cdecl呼叫約定又稱為 ...