編譯驅(qū)動(dòng)程序是,能把動(dòng)態(tài)鏈接庫(kù)變成靜態(tài)鏈接庫(kù)嗎?
DLL可以,把我們的SOURCE文件中的TARGETTYPE=DYNLINK改成TARGETTYPE=LIBRARY就可以。SYS文件不行!
我生成了靜態(tài)鏈接庫(kù),在安裝和開(kāi)發(fā)應(yīng)用程序的時(shí)候有什么變化?
靜態(tài)庫(kù)在連接的時(shí)候,把原來(lái)調(diào)用DLL動(dòng)態(tài)庫(kù)中的函數(shù)都嵌到應(yīng)用程序,所以經(jīng)過(guò)靜態(tài)庫(kù)連接的時(shí)候就不需要DLL動(dòng)態(tài)庫(kù),但是如果庫(kù)函數(shù)改變的話,還要重新編譯程序,DLL動(dòng)態(tài)庫(kù)只要替換一下文件就行。
謝謝
1.編譯靜態(tài)鏈接庫(kù),是否仍然用DDK? 2.在制作安裝程序的時(shí)候,生成的靜態(tài)鏈接庫(kù)是否需要拷貝到系統(tǒng)目錄下? 3.
1.是的 2.不需要拷,代碼都被連接器連接到你的程序中了。
BOOL WINAPI CH365ReadMemByte( // 從存儲(chǔ)器讀取一個(gè)字節(jié) PVOID iAddr, // 指定存儲(chǔ)器的地址,虛擬地址 PUCHAR oByte ); // 指向一個(gè)字節(jié)單元,用于保存讀取的字節(jié)數(shù)據(jù)
這里的虛擬地址試什么含義?
HANDLE mGamesHANDLE; mPCH365_MEM_REG *oMemBaseAddr;
mGamesHANDLE=CH365OpenDevice(TRUE,TRUE);
CH365GetMemBaseAddr( // 獲取存儲(chǔ)器的基址 oMemBaseAddr ); 這段測(cè)試代碼,執(zhí)行到CH365GetMemBaseAddr的時(shí)候,說(shuō)訪問(wèn)違例。信息試:Unhandled exception in test1.exe(CH365DLL.DLL):0xC0000005:Access Violation. 這是什么原因?
要下面這樣寫(xiě) mPCH365_MEM_REG oMemBaseAddr; CH365GetMemBaseAddr( // 獲取存儲(chǔ)器的基址 &oMemBaseAddr );
1、請(qǐng)問(wèn),在Windows XP系統(tǒng)下,如何編寫(xiě)終端響應(yīng)程序。我用的VC++; 2、為什么我用VC++讀取的中斷號(hào)與計(jì)算機(jī)系統(tǒng)中給出的中斷好不一致。
1、Windows 編程您可以參考相關(guān)圖書(shū) 2、CH365 VC編程可參考 DEBUG365 源碼,中斷部分編程可參考 INTER2 源碼,都在CH365EVT.ZIP中
我用靜態(tài)鏈接庫(kù)的時(shí),編譯出現(xiàn)如下信息,是為什么? 靜態(tài)鏈接庫(kù)是你們提供的。
Generating Code... Linking... CH365DLL.LIB(ch365dll.obj) : error LNK2001: unresolved external symbol __imp__SetupDiDestroyDeviceInfoList@4 CH365DLL.LIB(ch365dll.obj) : error LNK2001: unresolved external symbol __imp__SetupDiGetDeviceInterfaceDetailA@24 CH365DLL.LIB(ch365dll.obj) : error LNK2001: unresolved external symbol __imp__SetupDiEnumDeviceInterfaces@20 CH365DLL.LIB(ch365dll.obj) : error LNK2001: unresolved external symbol __imp__SetupDiGetClassDevsA@16 Debug/test3.exe : fatal error LNK1120: 4 unresolved externals 執(zhí)行 link.exe 時(shí)出錯(cuò).
可發(fā)郵件至 zyw@wch.cn 詢問(wèn)
把SETUPAPI.LIB加到工程中!這幾個(gè)函數(shù)是系統(tǒng)函數(shù),我們庫(kù)中調(diào)用了。
遇到某個(gè)API函數(shù)不能連接時(shí),先到MSDN上找到這個(gè)函數(shù),在這個(gè)函數(shù)的說(shuō)明文檔最下面有個(gè)Import Library: Link with setupapi.lib,這個(gè)setupapi.lib就是調(diào)用SetupDiXXXX函數(shù)是要加到工程中的庫(kù)。