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# - SetValue 64 位机器注册表

c++ - 在 .NET Web 应用程序中重用 C++/CLI 用户控件

c# - C# 中 "decimal"类型的有趣行为

c# - NetworkStream.Read 挂起/阻塞的原因有哪些?

c# - 寻找错误的命名空间?

javascript - 使用 .NET 中的 JavaScript 确定 pageLoad() 中是否发生了部分回发以及发生了哪些部分回发

c# - 将 List<String^> 从 C++ 传递到 C#

.net - 如何利用 C++/CLI 项目中的控件在我的 WPF 应用程序中使用?

c# - 如何使用 JS 在 C# 中的按钮单击上关闭 rad 窗口

c# - Windows Search sql - 无法访问 System.Search.QueryFocusedSummary