【问题标题】:Pinvoke native method with pascal callingconvention使用 Pascal 调用约定 Pinvoke 本机方法
【发布时间】:2019-01-19 12:01:49
【问题描述】:

我有一个旧的 c++ 库,所有方法都使用 pascal 调用约定导出, 据我所知,c# marshaller 不支持 pascal 调用约定, 我可以在 c# 端使用 stdcall 并以相反的顺序传递参数吗?

【问题讨论】:

    标签: c# pinvoke stdcall


    【解决方案1】:

    pascal 是一个 16 位调用约定,在 32 位代码中它被替换为 __stdcall。保留标识符是为了源兼容性。 CallingConvention.StdCall 是 pinvoke 的默认设置,因此无需特别注意。

    您可以在this post 中找到有关 DllImport.CallingConvention 的更多信息,其中提到了 pascal。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-06
      • 2011-07-04
      • 2018-02-12
      • 2014-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多