c語(yǔ)言庫(kù)函數(shù)可以自己寫(xiě)嗎,c語(yǔ)言如何編寫(xiě)屬于自己的庫(kù)

C語(yǔ)言中,如何自己定義一個(gè)庫(kù)函數(shù)?

1、存為xx.h文件放在自創(chuàng)的文件夾下,聲明#include“xx.h” 2、還可以存為xx.h文件直接與系統(tǒng)庫(kù)文件放一起,聲明#includexx.h(這樣會(huì)快些)

創(chuàng)新互聯(lián)公司于2013年成立,先為德宏州等服務(wù)建站,德宏州等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為德宏州企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

怎么在c語(yǔ)言中自己寫(xiě)庫(kù)函數(shù)

1、不同的系統(tǒng)開(kāi)發(fā)函數(shù)庫(kù)的具體步驟是不一樣的,這主要決定于編譯、鏈接環(huán)境。

2、不同的庫(kù)開(kāi)發(fā)方式也不一樣,現(xiàn)在主流的庫(kù)開(kāi)發(fā)有兩種,一種是靜態(tài)庫(kù),一種是動(dòng)態(tài)庫(kù),兩者的本質(zhì)區(qū)別是庫(kù)代碼是否和程序融合在一起,如果組裝在一起就是靜態(tài)庫(kù),如果不組裝在一起,即為動(dòng)態(tài)庫(kù),現(xiàn)在操作系統(tǒng)提供的多數(shù)是動(dòng)態(tài)庫(kù),如Linux平臺(tái)的.so文件,windows平臺(tái)的DLL文件。

3、以Windows平臺(tái)為例,用戶(hù)可以通過(guò)Vc/vs等IDE集成開(kāi)發(fā)環(huán)境,生成DLL工程,然后編寫(xiě)def文件進(jìn)行導(dǎo)出。

關(guān)于c語(yǔ)言中如何創(chuàng)建自己的庫(kù)函數(shù)能不能再詳細(xì)的解釋一下,謝謝了?。?!

庫(kù)分靜態(tài)庫(kù)和動(dòng)態(tài)鏈接庫(kù),靜態(tài)庫(kù)以lib結(jié)尾,被編譯器里的鏈接器識(shí)別。windows下動(dòng)態(tài)庫(kù)以dll結(jié)尾,被操作系統(tǒng)加載以模塊方式映射到進(jìn)程地址空間。一般初學(xué)者先學(xué)會(huì)創(chuàng)建的是靜態(tài)庫(kù)。靜態(tài)庫(kù)是一個(gè)無(wú)需重定位的函數(shù)集。怎么做到無(wú)需重定位呢?這是編譯器做的編譯工作,例如它指定開(kāi)頭的位置作為基址,剩下的代碼用到的都是相對(duì)偏移。這樣,這段二進(jìn)制代碼可以被放在內(nèi)存中的任何位置執(zhí)行,被寫(xiě)入了lib文件里。在lib文件里,包含了函數(shù)名與函數(shù)地址組成的結(jié)構(gòu)體,通過(guò)它編譯器可以找到lib文件里需要的二進(jìn)制代碼并以靜態(tài)聯(lián)編的方式寫(xiě)入我們調(diào)用它的exe文件里。這種代碼是被塞進(jìn)exe文件里而無(wú)需修改,并在程序執(zhí)行時(shí)被用到。為了讓庫(kù)被別人調(diào)用,我們可以寫(xiě)一個(gè)頭文件.h,包含函數(shù)原型及聲明。

C語(yǔ)言:如何自己做庫(kù)函數(shù)?

簡(jiǎn)單的一個(gè)例子,但是基本的程序編譯的思想都在里面了,具體的需要你自己體會(huì)和查資料

跟著下面的步驟走

------------------------

第一步:我的電腦-屬性-高級(jí)-環(huán)境變量

添加3個(gè)變量

1.名字:path 值:vc的安裝目錄里面包含cl.exe的bin目錄路徑+";"+vc目錄下包含mspdb80.dll的目錄的路徑

比如我的是D:\Program Files\Microsoft Visual Studio 8\VC\bin;D:\Program Files\Microsoft Visual Studio 8\Common7\IDE;

2.名字:include 值:vc安裝目錄下的include目錄,主要是為了找到頭文件,我的是D:\Program Files\Microsoft Visual Studio 8\VC\include;D:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include;

3.名字:lib 值:vc目錄下包含庫(kù)文件的目錄路徑

我的是D:\Program Files\Microsoft Visual Studio 8\VC\lib;D:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib;

第二步:需要下面兩個(gè)文件

//-------------libdemo.c

#include stdio.h

void lib_func()

{

printf("this routine in lib\n");

}

//------------main.c

void lib_func();

int main(int argc, char *argv[])

{

lib_func();

}

第三步:命令

cl /c libdemo.c '編譯libdemo.c 生成libdemo.obj

lib libdemo.obj '生成libdemo.lib 庫(kù)文件

cl /c main.c '編譯main.c

link main.obj libdemo.lib '生成main.exe

---------------------------------------------------

呵呵 加點(diǎn)東西,參看4樓的建議,在做個(gè)dll,COM組件就不做了,有點(diǎn)復(fù)雜了

1。把libdemo.c 稍微改下

//-------------libdemo.c

#include stdio.h

__declspec (dllexport) void lib_func()

{

printf("this routine in lib\n");

}

2。命令

cl /c libdemo.c main.c

link libdemo.obj /dll '生成libdemo.lib

link main.obj libdemo.lib

新聞名稱(chēng):c語(yǔ)言庫(kù)函數(shù)可以自己寫(xiě)嗎,c語(yǔ)言如何編寫(xiě)屬于自己的庫(kù)
本文路徑:http://www.muchs.cn/article4/phjpie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈品牌網(wǎng)站建設(shè)、做網(wǎng)站手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司