假如你有從源文件編譯好的靜態(tài)庫lib,你希望從這個(gè)lib生成對(duì)應(yīng)的dll,你需要一個(gè)def文件里面定義導(dǎo)出的符號(hào),這些符號(hào)的定義在那個(gè)靜態(tài)庫里,你要生成dll了,可以用VC的link命令在命令行下編譯得到,首先要運(yùn)行一下vcvars32.bat以初始話編譯環(huán)境。然后用類似于下面的命令:
link msvcrt.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /out:"XXX.dll" /DEF:"XXX.def" /SUBSYSTEM:WINDOWS /IMPLIB:"XXX.lib" "XXX_static.lib"
我要解釋一下,XXX_static.lib是一個(gè)靜態(tài)庫,鏈接后產(chǎn)生XXX.dll和導(dǎo)入庫XXX.lib
你不需要定義DllMain了,因?yàn)槟莻€(gè)msvcrt.lib里已經(jīng)提供了,這就是為什么要包含msvcrt.lib的原因。
聯(lián)系客服