c# - 托管 C++ 程序集能否将对象返回给 C#?

标签 c# c++-cli managed-c++

我正在编写一个必须读取视频文件的视频属性的 C# 应用程序。我发现这样做的唯一方法是使用需要 C++ 的 Microsoft Media Foundation。

到目前为止,我取得了一些进展:

  • 我创建了一个可编译为 DLL 的托管 C++ 程序集。
  • 我可以从 C# 代码中使用参数调用它。
  • 它执行并打印视频文件属性。

我接下来要做的是让 DLL 返回一个视频属性对象(宽度、高度、持续时间等)。如果我使用的是 C++ 托管代码,是否有一种简单的方法来定义对象类型并使用它在 C# 和 C++ 之间传递数据,或者我是否必须使用 Marshal 类?

最佳答案

当然!如果您在托管 C++(也称为 C++/CLI)中定义公共(public)对象:

public ref class MyManagedClass{
. . .
}

然后从您的 c# 项目中引用 dll,您将能够像在 c# 中定义它一样使用该对象。

关于c# - 托管 C++ 程序集能否将对象返回给 C#?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12254337/

相关文章:

c# - 在 c# (winForms) 中用字符串列表制作树结构

database - 混合 C++/CLI 代码与 Berkeley DB

c# - 如何仅在整个文本被括号包围时才删除括号?

c# - 从原始文件生成 C#,反之亦然,解释自定义选项

c# - 如何从某个端口上的服务器获取所有可用链接?

memory - Release模式下的 AccessViolationException (C++)

c++ - 处理 Mutex 对象

c++-cli - 如何从这个 c# 代码实现 IEnumerable<int>?

c# - 我如何在 C++/CLI 中执行 C# typeof(bool)?

c# - 从非托管代码加载混合模式程序集