<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          C#加載動態(tài)鏈接庫

          共 1407字,需瀏覽 3分鐘

           ·

          2022-02-23 12:30

          前言

          C#調(diào)用C/C++動態(tài)鏈接庫的簡單案例:用C#實現(xiàn)窗口調(diào)用由C/C++編譯生成的dll,dll實現(xiàn)兩整數(shù)求和功能,即函數(shù)int Add(int x, int y);

          創(chuàng)建DLL

          實現(xiàn)步驟:
          一:用C/C++編寫dll
          1、新建VC++應(yīng)用程序項目,輸入名稱為MyAdd,在應(yīng)用程序設(shè)置時選擇dll應(yīng)用程序類型,并勾選為空項目類型。

          2、新建項目頭文件dll.h 如下:

          #ifndef?DLL_EXPORT

          #define?DECLDIR?__declspec(dllimport)

          #else

          #define?DECLDIR?__declspec(dllexport)

          #endif

          建立項目源文件dllmin.cpp

          #include?

          #define?DLL_EXPORT?//先定義宏

          #include?"dll.h"//這個頭文件必須在#define?DLL_EXPORT后面

          ?

          extern?"C"

          {???

          DECLDIR?int?Add(?int?a,?int?b?)???

          {???

          return(?a?+?b?);???

          }

          }

          編譯調(diào)試,生成MyAdd.dll庫函數(shù)

          調(diào)用DLL

          用C#語言建立窗口應(yīng)用程序并調(diào)用dll
          1、用VS2010建立C#應(yīng)用窗口程序,添加按鈕和文本輸出控件,如下圖

          9352fc6e4fdc7a0af384250f3aa755a3.webp

          2、將MyAdd.dll拷貝到新建項目文件下的bin目錄中。

          3、響應(yīng)按鈕事件,調(diào)用MyAdd.dll實現(xiàn)兩數(shù)相加并在文本框中顯示相加后的結(jié)果,其實現(xiàn)代碼如下:

          首先聲明調(diào)用MyAdd.dll

            [DllImport("MyAdd.dll",?SetLastError?=?true)]

          ????????private?static?extern?int?Add(int?a,?int?b);

          在按鈕相應(yīng)中添加響應(yīng)代碼:

          ??int?x?=?7;

          ??int?y?=?9;

          ??int?z?=?Add(x,?y);

          ??textBox1.Text?=?Convert.ToString(z);

          4、調(diào)試程序生成可執(zhí)行文件,實現(xiàn)結(jié)果如圖



          三:總結(jié)

          1、注意事項

          (a)、將生成的dll文件放入DllImport可以尋找到的地方:


          1、.exe文件所在目錄?


          2、System32目錄?


          3、環(huán)境變量目錄。



          (b)、在C#窗口調(diào)用函數(shù)下,首先聲明調(diào)用Dll文件,如下: 


          [DllImport("MyAdd.dll",?SetLastError?=?true)]

          private?static?extern?int?Add(int?a,?int?b);


          聲明中應(yīng)注意:當(dāng)參數(shù)傳遞時,尤其是傳遞和返回字符串時,VC++中主要字符串類型為:LPSTR,LPCSTR, LPCTSTR, string, CString, LPCWSTR, LPWSTR等,但轉(zhuǎn)為C#類型卻不完全相同。


          來源:https://blog.csdn.net/redeagle_gbf/article/details/14001487


          版權(quán)申明:本文來源于網(wǎng)友收集或網(wǎng)友提供,僅供學(xué)習(xí)交流之用,如果有侵權(quán),請轉(zhuǎn)告版主或者留言,本公眾號立即刪除。


          支持小微:

          騰訊云 爆款2核2G云服務(wù)器首年40元,企業(yè)首購最高獲贈300元京東卡

          鏈接:https://curl.qcloud.com/1VVs7OBH


          右下角,您點一下在看圖片fc76ffcf0bbe080a012c548e6cde3c18.webp

          小微工資漲1毛

          商務(wù)合作QQ:185601686



          瀏覽 95
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  一级婬片试看15分钟免费 | 天天爽天天爽成人A片影院 | 亚州午夜双飞 | WwW69免费视频 | 在线无码视频免费观看 |