簡體   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