Dev Cpp Mingw32 環境介紹 6

2021-04-13 22:44:36 字數 2178 閱讀 6890

dev-cpp/mingw32 環境介紹(6)

上文回顧:

上文《dev-cpp/mingw32 環境介紹(5)》中,我們了解了如何來製作靜態連線庫。的確,上一片文章至今已經很長時間了。所以,我這次會用更多的內容來回報各位讀者的。下面我們就來說說如何製作動態鏈結庫。

第九章 製作自己的動態鏈結庫

「我沒有做夢吧,mingw32也能做win32的動態連線庫?」對你沒有做夢,我也沒有胡說。下面我簡單介紹一些動態庫的生成和使用。

還是老樣子,我們來開啟dev-cpp,然後我們新建工程。選擇dll工程。這個就是我們的鏈結庫。在新建以後,我們會生成乙個dll.h和乙個工程名.c檔案。其中,dll.h中儲存的是你動態庫的函式。下面我們看看我的檔案內容。

//dll.h

#ifndef _dll_h_

#define _dll_h_

#if building_dll

# define dllimport __declspec (dllexport)

#else /* not building_dll */

# define dllimport __declspec (dllimport)

#endif /* not building_dll */

#endif /* _dll_h_ */

#include

bool apientry dllmain (hinstance hinst /* library instance handle. */ ,

dword reason /* reason this function is being called. */ ,

lpvoid reserved /* not used. */ )

/* returns true on success, false on failure */

return true; }

dllimport int helloworld(void);

//dll.h end

其中我在最後一行加入了自己的函式,helloworld。

下面我們來看看我的helloworld.c

//helloworld.c

#include "dll.h"

dllimport int helloworld(void)

//helloworld.c end

好了,我們就來編譯吧。使用dev的編譯命令或者用如下命令。

我們將會得到兩個檔案。乙個libhelloworld.a,乙個helloworld.dll。我們使用這兩個檔案就可以程式設計了。

文外音:

說實話,這次這篇文章和前幾篇文章相比間隔確實有些長了。由於我前一階段有些忙了,所以,這次為各位讀者抱歉了。下面我們要學的是如何使用剛才我們編寫的動態庫。

第十章 使用自己的動態鏈結庫

上文回顧:

上文,我們介紹了如何生成動態庫。下面我們就來使用它吧。

新建乙個工程main.c的檔案如下

//main.c

#include

#include

#include "dll.h"

int main()

//main.c end

現在將剛才那個工程中的 dll.h libhelloworld.a helloworld.dll檔案複製到你現在工程的目錄裡。

然後,我們現在開啟工程屬性。在鏈結器一欄中加入

-l"helloworld"

文外音:

的確,現在很忙,所以文章的質量也下降了不少。不過還是希望給為能夠多多諒解。最近在搞na**彙編。發現其實emcas和na**確實很不錯。非常喜歡。不過,c我還是會追求的。只是,可能以後和各位的交流會少些,但是我還是會用我的文章來使各位獲得有關dev的內容。本系列文章,未完,待續。

studio軟體開發組(sdt)

studio development team

北斗星君(黃庠魁)

本文**

Dev Cpp Mingw32 環境介紹 7

上文回顧 在上文 dev cpp mingw32 環境介紹 6 中我們知道如何製作動態庫和使用。並在前面都介紹的dev cpp mingw32的使用方式。從這裡後面,我將根據我使用下來的一些經驗和開發工具與dev cpp mingw32結合的方式和結合後的使用方式。希望各位能夠認真的提出意見,並好好...

ESP32環境搭建

1,按照虛擬機器vm 3,按照對應的虛擬機器 環境 1,esp需要的編譯環境 gcc,g 版本是5.2 2,crosstool ng是1.22.0 一,按照git指令 sudo add apt repository ppa git core ppasudo apt get updatesudo ap...

ESP32環境搭建

安裝依賴包 make python等,因此我們需要先將這些軟體預裝好。gz 強迫症,解壓後把工具鏈的壓縮包刪掉 gz 強迫症,解壓後把工具鏈的壓縮包刪掉 rm xtensa esp32 elf linux32 1.22 0 61 gab8375a 5.2 0.tar gzecho export pa...