我正在编写一个必须读取视频文件的视频属性的 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/