32位程式在64位系統部署注意事項

2021-06-01 05:56:04 字數 668 閱讀 2647

32位dll檔案在64位系統下如何註冊:

註冊用的regsvr32.exe需要使用64位版,regasm.exe需要使用32位版(此檔案建議用.net4.0的,低版本的在64位系統可能會報錯,.net4.0的regasm

是可以相容低版本的)

其中regasm.exe 在64位系統安裝.net後,可在此目錄%windir%\microsoft.net\framework\v4.0.30319(v4.0.30319為.net版本,視實際情況而定)下找到;

regsvr32.exe 在%windir%\syswow64下。

只需用上述exe檔案註冊32位的dll即可。

編譯選項:

如果是.net程式,最好將編譯屬性中的 platformtarget由any cpu改為x86,否則如果使用了oledb會報「未在本地計算機上註冊「microsoft.jet.oledb.4.0」提供程式」的錯誤。

原因應是設定為any cpu的話,程式會在64位系統中自動尋找oledb的64位版本,但系統中只有32位版所以會報錯,指定為x86就只引用對應的32位版。

dll的引用:

如果專案a引用了專案b的dll,且b的platformtarget

是x86,那專案a也需要是x86。如果專案a是anycpu或x64的話,原理同上專案a會去尋找不存在的64位版專案b dll

64位系統編譯32位程式

如上使用c4這個小工具時遇到來需要 32位系統的需求,發現使用 m32引數後,編譯提示錯誤,如下 usr bin ld 未知的 模式 32 支援的 elf x86 64 elf32 x86 64 elf i386 i386linux elf l1om elf k1om i386pep i386pe ...

在64位linux下編譯32位程式

一般情況下我們最好是在乙個平台上編譯本平台的二進位制程式,比如在32位平台上編譯32位程式而在64位平台上編譯64位程式。現在64位的系統 這裡主要指x86 64系統,包括amd64和intel的em64t 已經開始廣泛的使用起來了,甚至於你現在要是想買32位的處理器根本就沒有。64位的系統在效能和...

在64位linux下編譯32位程式

留存備份 一般情況下我們最好是在乙個平台上編譯本平台的二進位制程式,比如在32位平台上編譯32位程式而在64位平台上編譯64位程式。現在64位的系統 這裡主要指x86 64系統,包括amd64和intel的em64t 已經開始廣泛的使用起來了,甚至於你現在要是想買32位的處理器根本就沒有。64位的系...