0
當涉及到32位和64位所有Windows平臺的可移植性時,我應該關心什麼? 更重要的是,如果有必要使用Windows API,我應該有什麼好習慣?32位和64位所有Windows平臺上的可移植性
當涉及到32位和64位所有Windows平臺的可移植性時,我應該關心什麼? 更重要的是,如果有必要使用Windows API,我應該有什麼好習慣?32位和64位所有Windows平臺上的可移植性
不知道C++,但有一個簡單而直接的解決方案。 將32位和64位構建放在一個目錄中。並且將這個bat文件放在那裏。
IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" GOTO x64
IF "%PROCESSOR_ARCHITEW6432%"=="AMD64" GOTO x64
IF "%PROCESSOR_ARCHITECTURE%"=="x86" GOTO x86
:x86
START "" build32.exe %1
GOTO arcselend
:x64
START "" build64.exe %1
:arcselend
exit
即使你想後執行動作(程序退出後)做的也歡迎
IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" GOTO x64
IF "%PROCESSOR_ARCHITEW6432%"=="AMD64" GOTO x64
IF "%PROCESSOR_ARCHITECTURE%"=="x86" GOTO x86
:x86
START "" /W build32.exe %1
GOTO arcselend
:x64
START "" /W build64.exe %1
:arcselend
:: Do something here like
DEL /F/Q "-PATH-\sometempfile.tmp" >NUL 2>NUL
exit
你不想讓身邊的蝙蝠文件? Here我們有一個bat 2 exe編譯器,佔用空間非常小。在您可以定義的設置中,也可以使用提升的權限啓動您的應用程序。
注意:使用相對路徑(當然),如果您有任何關於路徑的問題,請在此處填寫。會有另一個簡單的解決方案。
您是否考慮過使用像[Qt](http://qt.io)或[POCO](http://pocoproject.org/)這樣的框架庫? –
沒有這些外部庫或Boost。 – Collapsed
.NET怎麼樣? ..否則,你究竟在做什麼?基於WindowsNT的平臺(來自2k +)支持相同的基本WinAPI,即使這樣,您仍然(通常)需要將您的MSVCXXX.dll與您的應用程序一起分發,除非您知道它與您所針對的系統或靜態鏈接一起安裝。您是否打算使用CRT,MFC,GDK,DirectX或其他任何Windows API/SDK技術?確定你的目標,答案可能會更清晰。 – txtechhelp