c# - 使用 Pascal 调用约定调用 native 方法

标签 c# pinvoke stdcall

我有一个旧的 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/

相关文章:

C#让多个类共享另一个类的同一个实例

c# - 如何在不同网络上创建和使用基于 DNS 的自签名证书

com - 如何从 Go 进行 stdcall

c++ - 混合调用约定会导致编译错误

c# - 将 Delphi DLL 与来自 C# 的动态数组一起使用

c++ - 如何使回调全局化以便我可以将它用于其他函数?

c# - 用于解析二进制消息包的字节流的高效 C# 字节队列

c# - 完全C# noob,VS2010,不能使用HttpServerUtility.UrlEncode?

windows - 如何找到用户刚刚启动的可执行文件?

c# - P从用 C 编译的 DLL 中调用函数