日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c 调用c语言写的dll文件路径,手把手教你用C/C++语言创建及调试动态库DLL程序

發布時間:2023/12/15 c/c++ 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c 调用c语言写的dll文件路径,手把手教你用C/C++语言创建及调试动态库DLL程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引子

動態鏈接庫DLL文件不僅可以實現代碼、資源和數據的共享,同時也可以對源代碼起保護作用,對于開發者來講,DLL的生成及調試是程序員必須掌握的一種技術,下面通過一個具體的例子,演示使用C/C++語言生成及調用DLL文件的方法。這兒開發工具選擇的是小巧玲瓏、啟動迅速、精典一代的VC6.0環境,開發完成的目錄結構如下圖所示:

從目錄結構中可以看出,這個例子在“E”盤的“MyDllCode”文件夾下創建了一個工作空間“MyDllCode.dsw”,工作空間中包含了兩個項目,分別對應文件夾“MyDllSrc”和“MyDllTest”,其中, 前者是動態庫的源代碼工程,后者是測試代碼(調試代碼)工程,另外兩個文件夾“Debug”和“Release”存放了生成的dll和exe文件。

下面依次詳細說明動態庫的創建及調試過程。

創建工作空間和項目

在VC6.0中,選擇菜單“文件”-->“新建...”,在彈出的對話框中切換到“工作區”選項頁,依次填寫工作空間名稱和位置信息,如下圖所示:

工作區創建完成后,在VC6.0的左邊控制面板上的“FileView”中顯示當前的工作區名稱為“MyDllCode”,包含的項目個數為0,在工作區上點右鍵,彈出的右鍵菜單中選擇“添加新工程到工作空間...”,如下圖所示:

在彈出的新建工程對話框中,選擇工程類型為“Win32 Dynamic-Link Library”,工程名稱為“MyDllSrc”,切記選中“添加到當前工作空間”,設置如下圖所示:

在彈出的動態庫配置對話框中,選擇動態庫類型為“一個空的DLL工程”即可,如下圖所示,這樣就完成了動態庫源代碼工程的創建。

同樣的步驟,可以在工作空間中創建一個空的測試代碼工程,與動態庫源代碼工程不同的是,工程類型選擇“Win32 Console Appliction”的控制臺程序,工程名稱為“MyDllTest”。

工作空間的工程項目創建完成后,在VC6.0的左邊控制面板上的“FileView”中顯示情況如下圖所示,此時包含2個工程項目,皆為空工程,未包含任何源代碼文件:

設置工程輸出目錄

本例子既包含了動態庫源代碼工程,也包含了測試代碼工程(即調試工程),為便于調試,將兩個工程的輸出文件目錄設為同一個目錄,如都設為與工作空間“MyDllCode.dsw”同一個目錄,這樣免去了將動態庫dll文件手動拷到exe所在的目錄下的麻煩。如對于“Debug”模式,在VC6.0中選擇菜單“工程”-->“設置”或直接按“Alt+F7”快捷鍵,在彈出的工程對話框中選中工程“MyDllSrc”,在右側的“連接”選項卡頁修改輸出文件名,由原來默認的“Debug/MyDllSrc.dll”修改為“../Debug/MyDll.dll”,即將生成的“MyDll.dll”文件修改為當前工程所在目錄的上級目錄的“Debug”文件夾中。同樣方式修改工程“MyDllTest”文件輸出目錄為“../Debug/MyDllTest.exe”如下圖所示:

對于“Release”模式,同上面方式完全相同,分別將工程“MyDllSrc”和“MyDllTest”的文件輸出目錄修改為“../Release/MyDll.dll”和“../Release/MyDllTest.exe”。

編寫動態庫工程源代碼文件

新建頭文件“MyDll.h”,在VC6.0中選擇菜單“文件”-->“新建...”,在彈出的新建文件對話框中設置如下圖所示,切記勾選“添加到工程”為“MyDllSrc”。

在新建的“MyDll.h”文件中,代碼如下:

同樣的方式,新建C++源文件“MyDll.cpp”,代碼如下:

在動態庫工程中,定義并導出了一個函數“MyFunc”,該函數產生等間隔的數據向量并返回數據向量的最后一個值和狀態信息。在頭文件中定義宏“EXPORT”為“extern "C" __declspec(dllexport)”,說明該函數調用約定為“C”方式,在其它編程語言中調用該函數時,調用約定必須一致。編譯運行后即可得到在“E:\MyDllCode\Debug”目錄下得到動態庫文件“MyDll.dll”。

編寫測試工程(調試工程)源代碼文件

同編寫動態庫源代碼文件類似,新建一個測試代碼C++源文件“main.cpp”,切記勾選“添加到工程”為“MyDllTest”,代碼如下:

代碼中,通過“#include "../MyDllSrc/MyDll.h"”引入動態庫的頭文件,通過#pragma宏引入lib文件,這兒注意,路徑必須設置正確。編譯運行后即可得到在“E:\MyDllCode\Debug”目錄下得到可執行程序“MyDllTest.exe”文件,運行結果如下:

可見,調試代碼工程中,已經正確調用了“MyFunc”函數。

結論

上面給出了在VC6.0中創建及調試動態庫的完整過程,在其它如VS2008、VS2010等IDE中,配置環節也是類似的。另外,需要說明的是,由于本例子將動態庫工程和調試工程放在了同一個工作空間中,因此,在單步調試中,若在調用函數的行設置斷點,則不需作額外的設置,會自動進入到動態庫工程的源代碼“MyDll.cpp”中,觀察“MyFunc”函數的執行情況。

歡迎加關注,共同交流。

舉報/反饋

總結

以上是生活随笔為你收集整理的c 调用c语言写的dll文件路径,手把手教你用C/C++语言创建及调试动态库DLL程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。