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