c# - P/从 C# : Call functions of returned object 调用

标签 c# .net c++-cli pinvoke unmanaged

我有一个 native /非托管 DLL,它有一个“CreateObject”函数,它返回一个指向业务对象的指针..所以调用将是某事。喜欢:

[DllImport("MyDll.dll", CharSet = CharSet.Auto)]
private static extern IntPtr CreateObject();

问题: 该对象公开了我想调用的公共(public)函数,如“Connect()”,但我不知道如何“映射”这些调用,所以我有一个简单的方法签名,如:

private bool Connect();

有什么想法吗?

最佳答案

实现此目的的方法是提供另一个 PInvoke 函数,该函数调用执行方法调用的 C 函数

[DllImport("MyDll.dll", CharSet = CharSet.Auto)]
[return: MarshalAs(UnmanagedType.I1)]
private static extern bool Connect(IntPtr businessObject);

然后在 C 中定义以下内容

extern "C" {
  bool Connect(Business* pObject) {
    return pObject->Connect();
  }
}

关于c# - P/从 C# : Call functions of returned object 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9788609/

相关文章:

c# - 将 "/Date(1309498021672)/"反序列化为 DateTime

.net - 如何使用 OpenXML SDK 2.0 生成目录?

c# - 无法在 C++/CLI 中找到入口点

C++/CLI - 调用 DLL 中定义的非托管函数

visual-studio-2010 - C#字符串与std:string:传递字符串时出现问题

c# - 如何将一定比例的用户重定向到 Beta 测试网站?

c# - System.Data.SQLite parseViaFramework

c# - 在 NuGet 中添加同一包的 2 个不同版本

c# - 每次在 property getter 中返回新的 ICommand 不好吗?

.NET - 部署 WCF 客户端,没有 app.config