函數用該值來初始化局部堆;lpszCmdLine包含命令行的信息。
WEP函數是DLL的標準出口函數,它在DLL被卸出之前由Windows調用執行,以完成一些必要的清除工作。WEP函數隻使用一個參數nParameter,它用來指示終止狀態。
源文件中的其它函數則是DLL為應用程序提供的庫函數,DLL設計者可以給它加入自己所需要的功能,如DrawBox,DrawPie和DrawCircle。
建立DLL模塊定義文件
每個DLL必須有一個模塊定義文件,該文件在使用LINK連接時用於提供定義庫屬性的引入信息。
關鍵字LIBRARY用來標識這個模塊是一個動態連接庫,其後是庫名DRAWDLL,它必須和動態連接庫文件名相同。
DATA語句中關鍵字SINGLE是必須的,它表明無論應用程序訪問DLL多少次,DLL均隻有單個數據段。
其它關鍵字的用法同Windows應用程序的模塊定義文件一樣,這在前麵已有敘述,請參見5.1.2.3。
編製Makefile文件
NMAKE是Microsoft的程序維護機製,它控製執行文件的創建工作,以保證隻有必要的操作被執行。有五種工具用來創建動態連接庫:
CL
MicrosoftC優化編譯器,它將C語言源文件編譯成目標文件.OBJ。
LINK
Microsoft分段可執行連接器,它將目標文件和靜態庫連接生成動態連接庫。LINK命令行有五個參數,用逗號分開:第一個參數列出所有動態連接庫用到的目標文件(.OBJ),如果使用了標準動態連接初始化函數,則必須包括LIBENTRY.OBJ文件;第二個參數指示最終可執行文件名,一般用.DLL作為擴展名;第三個參數列出創建動態連接庫所需要的引入庫和靜態庫;第五個參數是模塊定義文件。
IMPLIB
Microsoft引入庫管理器,它根據動態連接庫的模塊定義文件創建一個擴展名為.LIB的引入庫。
RC
MicrosoftWindows資源編譯器。所有動態連接庫都必須用RC編譯,以使它們與Windows3.1版兼容。
MAPSYM
Microsoft符號文件生成器,它是可選工具,隻用於調試版本。
程序訪問
看本書最新章節,請到oop.tw
應用程序要訪問動態連接庫函數,它應該做下麵三件事:建立庫函數原型,調用庫函數,引入庫函數。建立庫函數原型一般通過在C語言源文件中包含動態連接庫的頭文件解決,
頭文件中包含了每個庫函數的原型語句,原型語句的目的是為編譯器定義函數的參數和返回值,以使編譯器能正確創建調用庫函數的代碼。原型語句定義好之後,應用程序就可以象調用靜態連接庫函數一樣調用動態連接庫的函數了。
:法方種三有般一,入引行進其對中序程用應在要還數函出引的中LLD用調序程用應
入引式隱時接連
。了樣一數函的中庫態靜用使同如就,時數函出引的LLD用使在序程用應樣這,庫入引的建創庫接連態動為出列中行令命接連的序程用應在是法方種這,入引式隱時接連是法方的單簡最也用常最
入引式顯時接連
:如,式形的號序口入和名庫接連態動、名數函入引用采,數函LLD的號序口入了義定中件文義定塊模在於對。成完中句語STROPMI的件文義定塊模的序程用應在列數函需所把過通它,的行進時接連在是也入引式顯,樣一入引式隱和
STROPMI
2.warDllD=xoBwarD
:句語入引下如用使則,號序口入的數函出引義定有沒件文義定塊模的LLD果如
STROPMI
xoBwarD.warDllD
入引態動時行運
。數函該用調才後然,址地數函需所索檢接直並,庫入裝先首序程用應,時數函出引的LLD用調要需當,數函LLD接連態動時行運在以可序程用應