Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将DllGetClassObject作为C#委托编写?_C#_Delphi_Pinvoke - Fatal编程技术网

如何将DllGetClassObject作为C#委托编写?

如何将DllGetClassObject作为C#委托编写?,c#,delphi,pinvoke,C#,Delphi,Pinvoke,有一个导出的dll方法是用delphi编写的: DllGetClassObject:function(constclsid,IID:TGUID;var Obj):HResult;stdcall 我需要以c#为代表编写等效方法。它应该是什么样子?像这样: [UnmanagedFunctionPointer(CallingConvention.StdCall)] public delegate uint DllGetClassObjectDelegate( [MarshalAs(Unmana

有一个导出的dll方法是用delphi编写的: DllGetClassObject:function(constclsid,IID:TGUID;var Obj):HResult;stdcall

我需要以c#为代表编写等效方法。它应该是什么样子?

像这样:

[UnmanagedFunctionPointer(CallingConvention.StdCall)]
public delegate uint DllGetClassObjectDelegate(
    [MarshalAs(UnmanagedType.LPStruct)]
    Guid rclsid,
    [MarshalAs(UnmanagedType.LPStruct)]
    Guid riid,
    [MarshalAs(UnmanagedType.IUnknown, IidParameterIndex=1)]
    out object ppv
);
资料来源: