封送c#中带有指针参数的方法指针
本文关键字:指针 参数 方法 封送 | 更新日期: 2023-09-27 17:54:50
我需要封送一个带有指针参数的方法指针,就像在C中那样:
void (*callback)(int *x);
我该如何将其写为c#中的结构字段?
注意:我不介意让CLR为我解引用指针
如果你的方法期望一个接受指向任何结构的指针的回调,你可以在像这样指定你的p/Invoke DllImports时传递一个托管回调:
private delegate void MyCallback(IntPtr par);
[DllImport("MyLibrary.dll")]
public static extern void SomeFunction(MyCallback callback);
然后你可以将IntPtr
封送到实际回调方法中的适当结构中。
[编辑]
要通过引用传递int
参数,下面的委托签名应该是最好的:
private delegate void MyCallback(ref int par);