我有一个旧的 C++ 库,所有方法都使用 Pascal 调用约定导出, 据我所知,c# marshaller 不支持 pascal 调用约定, 我可以在 C# 端使用 stdcall 并以相反的顺序传递参数吗?
最佳答案
pascal
是 16 位调用约定,在 32 位代码中它被替换为 __stdcall
。保留标识符是为了保持源兼容性。 CallingConvention.StdCall 是 pinvoke 的默认设置,因此不需要特别的。
您可以在 this post 中找到有关 DllImport.CallingConvention 的更多信息, 它提到了帕斯卡。
关于c# - 使用 Pascal 调用约定调用 native 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51810765/