【问题标题】:How do I write DllGetClassObject as a C# delegate?如何将 DllGetClassObject 编写为 C# 委托?
【发布时间】:2012-10-24 18:55:16
【问题描述】:

有一个用delphi写的dll导出方法: DllGetClassObject: 函数(const CLSID, IID: TGUID; var Obj): HResult;标准调用;

我需要在 c# 中编写等效方法作为委托。它应该是什么样子?

【问题讨论】:

    标签: c# delphi pinvoke


    【解决方案1】:

    像这样:

    [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
    );
    

    来源:http://blog.kutulu.org/2012/01/com-interop-part-9-custom-activations.html?m=1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-01
      • 1970-01-01
      相关资源
      最近更新 更多