gpt4 book ai didi

c# - 导出函数(VS2008)的默认调用约定是什么?

转载 作者:搜寻专家 更新时间:2023-10-31 00:02:27 24 4
gpt4 key购买 nike

鉴于以下 C++ 代码在函数声明中未提及调用约定,导出函数 Exported 的调用约定是什么?我的猜测是默认的 cdecl。

extern "C"
{
__declspec (dllexport) bool Exported(int parm);
}

我使用 LoadLibraryGetProcAddressMarshal.GetDelegateForFunctionPointer 从托管代码调用此函数。我可以使用 UnmanagedFunctionPointer 属性的不同值来装饰我的委托(delegate)定义,它们都似乎可以工作。

最佳答案

默认的调用约定是cdecl。请注意,__declspec(dllexport) 对调用约定没有影响。

调用约定可以在代码中指定,也可以通过编译器选项指定。我不推荐使用编译器选项,它有点太晦涩了。在代码中明确说明,然后阅读的任何人都知道使用什么约定。

请注意,对于 64 位 Windows 代码,所有调用约定都是等效的,这可以解释您所看到的内容。

关于c# - 导出函数(VS2008)的默认调用约定是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8036144/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com