① 如何解決64位進程調用32位dll-CSDN
64 位調 32 位的方法就是使用一個跨平台的進程。
也就是說,需要創建一個 和 使用的 DLL 一致的平台進程。
比如, 64 為需鋒叢要調用 32 位的 DLL,那麼需要創建一個 32 位的進程。
然後,讓這個進程來調用 32 位的 DLL。
你的 64 位程序和這個 32 位的進程通過進程間通信的方式呼叫函數。
比如說呼叫一個 DLL 中的函數,在你的 64 位進程中,把呼叫信息打包,發送給 32 位進程。
32 位進程得到這個數據包,呼叫 DLL 執行操作,在把結果返回到 64 位進程。
你說灶洞的那個網址上的方法是 Windows 封裝的一隱基枯個方式。
她使用 介面 和 RPC 隱藏呼叫的復雜性。
比如,如果創建遠程實例,引用鎖定,線程安全等等。
Windows API 呼叫內核都是這樣的。RPC 是 Windows 的基本操作。
② vs是64位為什麼遠程調試監控器是32位
vs2012在 windows2003,讓旦擾 xp下無法坦旦遠程調試, 不支持的。 vs2012隻支持windows2008以遲嘩上的版本進行遠程調試。 windows2003下 只能用vs2010進行遠程調試。
③ 32位軟體在64位電腦運行不顯示該怎麼辦
安裝64位office辦公軟體的時候提示已有32位系統,不能安裝。。而32位office已經卸載。
這是因為注冊表裡還有32位軟體的注冊文件。下面將通過幾步解決。
電腦無法安裝64位版本的office提示已有32位版本怎麼辦?
按WIN+R鍵,打開運行。輸入regedit,點確定。
進入注冊表後,找到HKEY_CLASSES_ROOT,點擊打開。
找到Installer,點擊打開。
在列表中找到Procts。
將Procts中0005開頭的文件刪除,(有時是0002開頭的)。
再重新安裝即可。
④ 64位程序怎麼調用32位dll
在64bit平台上,在32bit平台上調試通過之後,很容易就生成了64bit的驅動文件版這個問題最終是這樣解決的。權
總結:
32bit的進程是可以調用64bit的驅動(sys文件)的;但是32bit的進程不能調用64bit的進程,更換到64bit平台上:我使用WDF重新編寫了驅動程序,例如我的32bit的VB軟體就不能夠調用64bit的DLL,完全可以使用32bit的DLL和32bit的進程。因此我的軟體不用做任何改動,在64bit平台上直接使用。
⑤ 在64位操作系統上,下面程序返回什麼結構
一、確定在64位操作系統上運行還是在WOW64下運行。
在Visual
Studio平台中最後對64位應用程序編譯時,需要指定這個應用程序是在64位操作系統上作為本機應用程序運行還是在WOW64環境下運行。這個
WOW64環境是一個由操作系統提供的兼容性環境。這個環境主要是讓32位應用程序也能夠在64位的操作系統上運行。換句話說,在編譯時要確定產生的應用
程序是真正的64位應用程序(只能夠在64位操作系統上運行),還是偽64位應用程序(其實是32位應用程序,只是可以藉助WOW64在64位操作系統上
運行)。
在確定這個內容的時候,有一個內容筆者要特別提醒
大家。通常情況下在64位操作系統上,所有使用NET Framework
1.1以前版本生成的應用程序都將被視作為32位應用程序,並且始終在32位公共語言運行上的WOW64環境下運行;而在2.0版本以後生成的32位特定
應用程序可以在64位平台上的WOM64環境下運行。這兩個版本之間的細微差異,各位讀者可以開發一個小程序測試一下即可。其中的內涵是只可意會、不可言
傳呀。
二、正確部署Visual Studio開發環境。
在開發64位應用程序之前,需要明白一點。到目前
為止,Visual Studio
2008仍然是一個32位的應用程序。在安裝部署時,如果是在X86的計算機上(32位操作系統),則其將安裝32位的CLR版本。而如果在64位操作系
統上安裝部署時,安裝進程將同時安裝32位的CLR版本和合適的64位CLR。注意當將其部署到64位操作系統的時候,它將在WOW64環境下運行。
此時筆者認為需要注意一個細節問題。當在
Wom64環境下運行32位應用程序時,應用程序只限於在一個處理器上執行。也就是說應用程序不能夠享受64位操作系統所帶來的性能上的提升。而單處理器
執行會降低32位應用程序在基於Itanium系統上運行時的性能和可伸縮性。為此如果對於性能要求比較高的應用程序或者有負載比較高的伺服器,盡量不要
採用兼容的方式。即32位應用程序在32位操作系統上運行,而不要在Wom64環境下運行。否則的話,不但不能夠享受64位操作系統帶來的好處,反而會降談圓
低應用程序原有的性能,得不償失。
三、32位應用程序在64位CLR上運行可能導致意外的結果。
雖然64位操作系統提供另一個WOW64環境,使得32位應用程序能夠在64位操作系統上運行。也就是說,在大部分情況下32位含猛塌應用程序可以在32位或者64位操作系統上同等的運行,其最終的結果都是相同的。但是有時候也會有意外。這些意外主要是以下原因所造成的。
如在應用程序的結構中包含一些大小隨平台而改變的成員。如指針類型的對象,其會操作操作系統位數的不同而改知核變。再如指針演算法中如果包含固定大小,或者不正確的平台調用與COM聲明等等,都會導致32位應用程序在64位CLR上運行出現一些意外的結果。
為此筆者特別提醒,如果開發人員設計一些兼容的應用程序時(即可以同時在32位與64位應用程序上運行),必須要注意這些因素對應用程序運行過程的影響。在開發中,要盡量避免使用這些對象,以免不必要的麻煩。
四、如何判斷某個應用程序是否適合在64位操作程序上運行。
在應用程序開發時,開發人員可能會借鑒已有的應用
程序。此時他們就需要判斷手中的應用程序能否在WOW64環境下運行。或者說,只有在特定的平台下,如32位操作系統或者64位操作系統下(而不是
WOM64)下運行。要實現這個目的的話,開發環境提供了一個Corflags的命令。簡單的說,在命令行中使用corflags.exe可以確定某個
exe或者dll是僅僅在特定平台上運行,還是只可以在WOW64環境下運行。另外在必要的情況下,程序開發人員還可以利用這個命令來更改應用程序的平台
狀態。
五、調試64位應用程序與32位應用程序之間的差異。
在開發平台中自帶有應用程序的調試工具。應用程序
調試一般包括本地調試與遠程調試。對於一些中大型的應用程序而言,遠程調試是必須的。這里需要注意,在任何情況下,如果在64位計算機上安裝遠程調試都會
同時安裝32位和64位版本的遠程調試監視器。不過在調試64位應用程序的時候,則必須要選擇正確的版本。如需要選擇「遠程調試器X64)。否則的話,調
試結果會有偏差。
下面介紹一下在64位平台上VS中會出現的編譯錯誤
模塊計算機類型「x64」與目標計算機類型「X86」沖突
一種可以解決的方法是:
1、修改目標計算機類型:項目->熟悉->連接器(Linker)->高級->目標計算機。然後把目標計算機類型改成X64。如下圖所示:
2、配置管理器:解決方案平台(默認是Win32的)->選擇配置管理器->活動解決方案平台下選擇x64。如下圖所示:
清楚一下項目 重新編譯一下 OK!
項目生成64位的應用程序
⑥ office2019由64改成32如何操作
1、載入鏡像文件
打開鏡像文件存放的目錄,右擊、用好壓軟體加芹塵兄載至虛擬光碟機。
2、安裝Deployment Tool
(此時在官網下載的最新版是16版本的工具,對19版具有兼容性。也許各位在安裝的時候就出19版的工具了).
雙擊已經下載好的XXX.exe可執行文件,
接下來就會提示選擇文件路徑,這個路徑是存放setup.exe軟體和配置文件的,可以隨便放.
本人在D盤新建嫌襲了一個Officetool文件夾進行存放(文件夾一定要英文的).
在D盤Officetool文件夾下可以看到一個setup.exe文件和3個.xml文件.
在Officetool文件夾下新建一個Configuration.xml文件,右擊編輯,在文檔中寫入以下內容:
其中Add後面添加的SourcePath="V:"是用虛擬光碟機載入安裝鏡像後的路徑,OfficeClientEdition=「64」,是指定安裝64位的,若是32位,請將此處改兄塵為32即可,然後保存一下。(如果出現路徑錯誤,SourcePath="V:"去除即可)
3、安裝執行
通過管理員模式打開CMD控制台,鍵入如下代碼進行執行
⑦ 如何讓32位編譯的程序在64位系統中正常運行
操作系統從32位步入64位,對於用戶來說是質的飛躍。由於CPU讀取數據寬度增加1倍,速度和精度都帶來了跨躍。同時,CPU的讀寫方式的改變,對於程序員來說,需要適應跟進。雖然,64位系統支持32位程序,但是是有條件的,因為系統對CPU的操作有所變化,有的有32位上操作,就不能在64位在操作了。比如,軟體通過調用底層,通過匯編讀寫數據的源程序,在32位上運行自如,在64位上就出現問題,執行出錯。
在開發工具方面,基於Java、.NET的工具可以很順利地支持64位平台。因為,它們不通過調用底層實現代碼,而是基於.Net調用實施。對於Delphi來說,由於它是與操作系統緊密相關的,與它代碼,最終實現「32位程序可以在64位系統正常運行」的目的。
下面步驟僅供參考:
1、對於涉及到ASM代碼的單元進行修改,採用API取代;
2、對於一些引用的讀寫硬體的單元,多數採用ASM代碼,取消引用該類單元;
3、盡可能不使用第三方控制項。特別是,無源代碼的第三方控制項。(內含ASM代碼)
4、修改後的讀寫硬體的單元,要分別在64位機器中,調試。主要驗證:
(1)可以運行(支持代碼)。
(2)返回值32位與64位一致。
通過,上述代碼改進。編譯後的程序。在64位上正常運行。
⑧ 如何解決64位系統與32位軟體不兼容
1、在64位Win7系統下運行游戲,彈出錯誤對話框。