您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“C#怎么使用DLLImport調用外部DLL”,內容詳細,步驟清晰,細節處理妥當,希望這篇“C#怎么使用DLLImport調用外部DLL”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
DllImport 屬性提供非托管 DLL 函數的調用信息。
[DLLImport(“DLL文件路徑”)]
修飾符 extern 返回值類型 方法名稱(參數列表) 如:
using System.Runtime.InteropServices; [DllImport( "KERNEL32.DLL", EntryPoint="MoveFileW", SetLastError=true, CharSet=CharSet.Unicode, ExactSpelling=true, CallingConvention=CallingConvention.StdCall ) ] public static extern bool MoveFile(String src, String dst);
首先,應該在C#語言源程序中聲明外部方法,其基本形式是:
其中:
DLL文件:包含定義外部方法的庫文件。
修飾符: 訪問修飾符,除了abstract以外在聲明方法時可以使用的修飾符。
返回變量類型:在DLL文件中你需調用方法的返回變量類型。
方法名稱:在DLL文件中你需調用方法的名稱。
參數列表:在DLL文件中你需調用方法的列表。
注意:需要在程序聲明中使用System.Runtime.InteropServices命名空間。
EntryPoint :指定要調用的 DLL 入口點。
SetLastError :判斷在執行該方法時是否出錯(使用 Marshal.GetLastWin32Error API 函數來確定)。
C#中默認值為 false。
CharSet :控制名稱及函數中字符串參數的編碼方式。默認值為 CharSet.Ansi。
ExactSpelling:是否修改入口點以對應不同的字符編碼方式。
CallingConvention:指定用于傳遞方法參數的調用約定。默認值為 WinAPI。該值對應于基于32位Intel平臺的 __stdcall。
BestFitMapping :是否啟用最佳映射功能,默認為 true。 最佳映射功能提供在沒有匹配項時,自動提供匹配的字符。 無法映射的字符通常轉換為默認的“?”。
PreserveSig:托管方法簽名是否轉換成返回 HRESULT,默認值為 true(不應轉換簽名)。并且返回值有一個附加的 [out, retval] 參數的非托管簽名。
讀到這里,這篇“C#怎么使用DLLImport調用外部DLL”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。