1

我想在 MediaInfo.dll 中调用一个函数。

功能是:

const wchar_t*     __stdcall MediaInfo_Option (void* Handle, const
wchar_t* Option, const wchar_t* Value);

我以这种方式在 c# 代码中声明了它:

[DllImport("MediaInfo.dll", CharSet = CharSet.Unicode)] internal
static extern string MediaInfo_Option(IntPtr Handle, string OptionString, string Value);

这是调用它的代码:

MediaInfo.MediaInfo_Open(this.h, path);
MediaInfo.MediaInfo_Option(this.Handle, "Complete", "1");
myTextBox.Text = MediaInfo.MediaInfo_Inform(this.h, 0);
MediaInfo.MediaInfo_Close(this.h);

问题是任何使用 .NET Framework 编译的等于或高于版本 4 的 c# 应用程序在调用该函数时都会崩溃。

我该如何解决?

提前致谢。

4

1 回答 1

0

你没有 Marshall 输入和输出的 wchar_t*,你会得到随机错误。

MediaInfo有一个C# 绑定,它处理所有丑陋的东西。您可以将它与MediaInfo 的 C# 示例一起使用。
您可能有兴趣下载带有 C# 示例项目的 DLL 包

于 2016-02-12T21:58:18.640 回答