我有一个在C#代码中使用的非托管处理程序,委托定义为
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
public delegate int Callback (arguments)
它适用于32位版本,我问我在64位版本中需要做些什么改动。如果WIN32则包含处理程序的dll的C头定义为__stdcall
,如果WIN64则定义为__fastcall
(即dll同时包含32和64位版本)。但在NET文档中,据说不支持fastcall。我不明白这一切意味着什么,我应该如何更改(或不更改)64位代码?
答案 0 :(得分:1)
你不需要做任何事情。在定位64位代码时,将忽略调用约定指令,因为该架构只有一个调用约定。保持代码不变。它将适用于32位和64位编译。