中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#怎么使用DLLImport調用外部DLL

發布時間:2022-04-25 13:49:25 來源:億速云 閱讀:299 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“C#怎么使用DLLImport調用外部DLL”,內容詳細,步驟清晰,細節處理妥當,希望這篇“C#怎么使用DLLImport調用外部DLL”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

C#.Net調用基本格式:

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);

調用DLL中的非托管函數一般方法

首先,應該在C#語言源程序中聲明外部方法,其基本形式是:

其中:

DLL文件:包含定義外部方法的庫文件。

  • 修飾符: 訪問修飾符,除了abstract以外在聲明方法時可以使用的修飾符。

  • 返回變量類型:在DLL文件中你需調用方法的返回變量類型。

  • 方法名稱:在DLL文件中你需調用方法的名稱。

  • 參數列表:在DLL文件中你需調用方法的列表。

注意:需要在程序聲明中使用System.Runtime.InteropServices命名空間。

其它可選的 DllImportAttribute 屬性:

  • 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”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南江县| 新余市| 辽阳市| 新营市| 桦川县| 湛江市| 琼结县| 龙里县| 延津县| 稻城县| 安宁市| 中江县| 阿拉善盟| 德庆县| 津市市| 剑阁县| 崇信县| 从化市| 孝义市| 民勤县| 蓝山县| 星座| 涟源市| 达日县| 肥东县| 靖边县| 广饶县| 湖南省| 长乐市| 遵义县| 将乐县| 文水县| 琼中| 元氏县| 丽水市| 苏州市| 海阳市| 邵阳县| 孝义市| 东安县| 广宁县|