繁体   English   中英

在C#中导入C ++ dll函数

[英]Importing C++ dll function in C#

我想在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#应用程序在调用该函数时都会崩溃。

我该如何解决?

提前致谢。

您没有对输入和输出的wchar_t *进行编组,将得到随机错误。

MediaInfo有一个C#绑定 ,可以处理所有丑陋的事情。 您可以将其与MediaInfoC#示例一起使用。
您可能对使用C#示例项目下载DLL包感兴趣。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM