欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#使用DLLImport調(diào)用外部DLL的方法

 更新時(shí)間:2022年04月25日 11:56:55   作者:農(nóng)碼一生  
這篇文章介紹了C#使用DLLImport調(diào)用外部DLL的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

C#.Net調(diào)用基本格式:

DllImport 屬性提供非托管 DLL 函數(shù)的調(diào)用信息。

[DLLImport(“DLL文件路徑”)]
修飾符 extern 返回值類型 方法名稱(參數(shù)列表) 如:

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

調(diào)用DLL中的非托管函數(shù)一般方法

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

其中:

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

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

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

  • 方法名稱:在DLL文件中你需調(diào)用方法的名稱。

  • 參數(shù)列表:在DLL文件中你需調(diào)用方法的列表。

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

其它可選的 DllImportAttribute 屬性:

  • EntryPoint :指定要調(diào)用的 DLL 入口點(diǎn)。

  • SetLastError :判斷在執(zhí)行該方法時(shí)是否出錯(cuò)(使用 Marshal.GetLastWin32Error API 函數(shù)來確定)。
    C#中默認(rèn)值為 false。

  • CharSet :控制名稱及函數(shù)中字符串參數(shù)的編碼方式。默認(rèn)值為 CharSet.Ansi。

  • ExactSpelling:是否修改入口點(diǎn)以對應(yīng)不同的字符編碼方式。

  • CallingConvention:指定用于傳遞方法參數(shù)的調(diào)用約定。默認(rèn)值為 WinAPI。該值對應(yīng)于基于32位Intel平臺的 __stdcall。

  • BestFitMapping :是否啟用最佳映射功能,默認(rèn)為 true。 最佳映射功能提供在沒有匹配項(xiàng)時(shí),自動提供匹配的字符。 無法映射的字符通常轉(zhuǎn)換為默認(rèn)的“?”。

  • PreserveSig:托管方法簽名是否轉(zhuǎn)換成返回 HRESULT,默認(rèn)值為 true(不應(yīng)轉(zhuǎn)換簽名)。并且返回值有一個(gè)附加的 [out, retval] 參數(shù)的非托管簽名。

到此這篇關(guān)于C#使用DLLImport調(diào)用外部DLL的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#中的lock、Monitor、Mutex學(xué)習(xí)筆記

    C#中的lock、Monitor、Mutex學(xué)習(xí)筆記

    這篇文章主要介紹了C#中的lock、Monitor、Mutex學(xué)習(xí)筆記,本文講解的都是線程同步的一些知識,需要的朋友可以參考下
    2015-01-01
  • 淺析C#靜態(tài)類,靜態(tài)構(gòu)造函數(shù),靜態(tài)變量

    淺析C#靜態(tài)類,靜態(tài)構(gòu)造函數(shù),靜態(tài)變量

    這篇文章主要介紹了淺析C#靜態(tài)類,靜態(tài)構(gòu)造函數(shù),靜態(tài)變量 的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • C#線程執(zhí)行超時(shí)處理與并發(fā)線程數(shù)控制實(shí)例

    C#線程執(zhí)行超時(shí)處理與并發(fā)線程數(shù)控制實(shí)例

    這篇文章主要介紹了C#線程執(zhí)行超時(shí)處理與并發(fā)線程數(shù)控制的方法,實(shí)例講述了并發(fā)執(zhí)行存儲過程的最大個(gè)數(shù),讀者可對程序稍做改動即控制并發(fā)線程數(shù),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-11-11
  • C#多線程系列之任務(wù)基礎(chǔ)(三)

    C#多線程系列之任務(wù)基礎(chǔ)(三)

    本文詳細(xì)講解了C#多線程的任務(wù)基礎(chǔ),文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • C#線性漸變畫刷LinearGradientBrush用法實(shí)例

    C#線性漸變畫刷LinearGradientBrush用法實(shí)例

    這篇文章主要介紹了C#線性漸變畫刷LinearGradientBrush用法,實(shí)例分析了線性漸變畫刷LinearGradientBrush的相關(guān)使用技巧,需要的朋友可以參考下
    2015-06-06
  • C#自定義畫刷原理解析

    C#自定義畫刷原理解析

    這篇文章主要為大家詳細(xì)介紹了C#自定義畫刷原理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C#播放鈴聲最簡單實(shí)現(xiàn)方法

    C#播放鈴聲最簡單實(shí)現(xiàn)方法

    這篇文章主要介紹了C#播放鈴聲最簡單實(shí)現(xiàn)方法,通過調(diào)用系統(tǒng)方法實(shí)現(xiàn)播放wav格式音頻文件的功能,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-12-12
  • C#實(shí)現(xiàn)加密exe文件

    C#實(shí)現(xiàn)加密exe文件

    這篇文章主要為大家詳細(xì)介紹了C#如何實(shí)現(xiàn)加密exe文件的功能,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-01-01
  • C# WinForm制作一個(gè)批量轉(zhuǎn)化文件格式的小工具

    C# WinForm制作一個(gè)批量轉(zhuǎn)化文件格式的小工具

    在生活中有時(shí)候會遇到批量轉(zhuǎn)換格式的需求,一個(gè)個(gè)點(diǎn)太麻煩了,一個(gè)能夠?qū)崿F(xiàn)批量文件格式轉(zhuǎn)換的工具非常有用,所以本文小編使用C# WinForm制作一個(gè)批量轉(zhuǎn)化文件格式的小工具,文中有具體實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2023-11-11
  • C#創(chuàng)建線程帶參數(shù)的方法

    C#創(chuàng)建線程帶參數(shù)的方法

    本文給大家介紹C#創(chuàng)建線程帶參數(shù)的方法,包括無參數(shù)線程的創(chuàng)建,帶一個(gè)參數(shù)線程的創(chuàng)建及帶兩個(gè)及以上參數(shù)線程的創(chuàng)建,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看下吧
    2016-07-07

最新評論