64位程序調(diào)用32位庫(kù) 64位程序可以調(diào)用32位dll嗎?
64位程序可以調(diào)用32位dll嗎?工作流:1。創(chuàng)建進(jìn)程外COM服務(wù)器(exe)。 2. 將32位DLL的接口函數(shù)封裝為COM服務(wù)器的相關(guān)接口。 3. 注冊(cè)COM服務(wù)器*。Exe/regserver(注
64位程序可以調(diào)用32位dll嗎?
工作流:
1。創(chuàng)建進(jìn)程外COM服務(wù)器(exe)。
2. 將32位DLL的接口函數(shù)封裝為COM服務(wù)器的相關(guān)接口。
3. 注冊(cè)COM服務(wù)器*。Exe/regserver(注銷*)。Exe/unreger服務(wù)器)。
4.64位進(jìn)程成功調(diào)用32位COM服務(wù)器接口。因此,64位進(jìn)程調(diào)用32位DLL。具體步驟:我先創(chuàng)建一個(gè)簡(jiǎn)單的DLL項(xiàng)目,只輸出一個(gè)函數(shù)int c=add(int a,int b)來生成lib和DLL,然后創(chuàng)建一個(gè)進(jìn)程外的com(EXE類型),內(nèi)部鏈接DLL,add方法:add(long*c){*c=add(1,2)}來編譯生成。然后注冊(cè)com,*。Exe/regserver創(chuàng)建64位Win32項(xiàng)目,以驗(yàn)證方法調(diào)用在64位環(huán)境中是否正確。它被證實(shí)是正確的
!結(jié)論:上述方法可以解決64位進(jìn)程調(diào)用32位DLL的問題,32位進(jìn)程調(diào)用64位DLL也應(yīng)該用這種方法來解決。原因是32位和64位com系統(tǒng)安裝在64位windows系統(tǒng)中
在64位平臺(tái)上,在32位平臺(tái)上調(diào)試后很容易生成64位驅(qū)動(dòng)程序文件。這是最后一個(gè)無法解決的問題。
小結(jié):32位進(jìn)程可以調(diào)用64位驅(qū)動(dòng)程序(sys文件);但32位進(jìn)程不能調(diào)用64位進(jìn)程,更改為64位平臺(tái):我使用WDF重新編寫驅(qū)動(dòng)程序,例如,我的32位VB軟件不能調(diào)用64位DLL,我可以完全使用32位DLL和32位進(jìn)程。因此,我的軟件不需要做任何更改,可以直接在64位平臺(tái)上使用。
64位程序怎么調(diào)用32位dll?
工作流:
1。創(chuàng)建進(jìn)程外COM服務(wù)器(exe)。
2. 將32位DLL的接口函數(shù)封裝為COM服務(wù)器的相關(guān)接口。
3. 注冊(cè)COM服務(wù)器*。Exe/regserver(注銷*)。Exe/unreger服務(wù)器)。
4.64位進(jìn)程成功調(diào)用32位COM服務(wù)器接口。因此,64位進(jìn)程調(diào)用32位DLL。具體步驟:我先創(chuàng)建一個(gè)簡(jiǎn)單的DLL項(xiàng)目,只輸出一個(gè)函數(shù)int c=add(int a,int b)來生成lib和DLL,然后創(chuàng)建一個(gè)進(jìn)程外的com(EXE類型),內(nèi)部鏈接DLL,add方法:add(long*c){*c=add(1,2)}來編譯生成。然后注冊(cè)com,*。Exe/regserver創(chuàng)建64位Win32項(xiàng)目,以驗(yàn)證方法調(diào)用在64位環(huán)境中是否正確。它被證實(shí)是正確的
!結(jié)論:上述方法可以解決64位進(jìn)程調(diào)用32位DLL的問題,由于32位和64位com系統(tǒng)安裝在64位windows系統(tǒng)中,32位進(jìn)程調(diào)用64位DLL的問題也應(yīng)該用這種方法來解決