我一直在使用 PInvoke 让我的 C# 应用程序调用我编写的 C++ 函数。
现在,我不断听到我需要用__stdcall
约定定义那些外部可访问的函数。我的问题是:为什么?
到目前为止,我不小心忽略了这个建议,一切都像一个魅力。当我添加__stdcall
到我的函数中时,一切都以相同的方式工作(或者至少看起来如此)。
本文说它__stdcall
用于 Win32 位功能,但我正在针对 x64 平台进行编译。这是否意味着我__stdcall
毕竟不应该使用,还是意味着我错过了其他东西?
请在回复时使用简单的英语。;-) 像这样的行(引用自我链接的文章):
被调用者清理堆栈,因此编译器生成可变参数函数 __cdecl。
让我的大脑感觉好像有风滚草吹过它。