Vid*_*ron 10 c windows api winapi winmain
我已经开始在C中学习Win32 API.我看到主要功能是类似的
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow) { .. }
Run Code Online (Sandbox Code Playgroud)
但我知道C中的函数就像
[ReturnType] [FunctionName] (Args) { .. }
Run Code Online (Sandbox Code Playgroud)
在这种情况下,返回类型为int,函数名称为WinMain.那么WINAPI代表什么,是否有必要?
谢谢 .:)
Pau*_*bel 14
它指定了调用约定,即函数的参数在堆栈上的放置和管理方式.
您可以混合使用调用约定,例如,如果您正在调用某些外部代码,例如Windows API,只要每个人都在他们期望的同一"页面"上.
典型的c调用使用所谓的cdecl编译.在cdecl中,调用者清理堆栈上推送的参数.
WINAPI,也称为"标准调用",意味着被调用函数负责清理其参数堆栈.
MS编译器将使用_前缀cdecl调用,而WINAPI获取前导_并在函数名称变形时获得函数名称前面的@ {BYTES-NEEDED}.从上面的链接:
call _sumExample@8 ;WINAPI
call _someExample ;cdecl
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7981 次 |
最近记录: |