Skip to Content

Windows

用 #ifdef 判斷作業系統

在程式中若是要因應不同的作業系統而有不同的內容,則可以用底下的方法來處理。

#ifdef _Windows

….. (windows 下的程式)....

#endif

底下是目前在 C++ Builder 實際試出來的。

Win32 下有

_WINDOWS_
_Windows
WIN32
_WIN32
__WIN32__
(注意 : 這個在 Win64 沒有)

Win64 下有

_WINDOWS_
_Windows
WIN32
_WIN32
_WIN64

後來在這裡有查到一些,但沒有我測試的完整

http://docwiki.embarcadero.com/RADStudio/Tokyo/en/WIN32#win32

看來判斷 Windows 可用 _Windows

Win32 則用 __WIN32__

Win64 則用 _WIN64

Android 則用 __ANDROID__

Mac 和 iOS 則用 __APPLE__

iOS 則用 TARGET_OS_IPHONE

32位元手機則用 __arm__

64位元手機則用 __arm64__

利用以上去組合,應該就可以判斷了。

補充: 後來看到這篇 

http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Creating_an_iOS_App

提到 iOS 可以使用  TARGET_OS_IPHONE 來判斷。

還有如下例子:

#if (TARGET_OS_IPHONE)
// Code for iOS devices only.
#endif
 
#if (TARGET_OS_IPHONE) && (__arm__)
// Code for 32-bit iOS devices only.
#endif
 
#if (TARGET_OS_IPHONE) && (__arm64__)
// Code for 64-bit iOS devices only.
#endif

 

在 VMware Player 安裝 Win10

Microsoft Windows 10 剛出來的時候,打著 Win7/8 免費升級的宣傳,剛好因為工作也有需要,就打算安裝一套來試試。
 
我當然不敢拿工作用的 Win7 直接來升級,剛好手邊有一套 Win8,那是當初買 Win7 時加價購買的,好像不到 500 元吧?當初是想,雖然不喜歡 Win8,但 Win7 總有一天要退休,到時就可以用這套 Win8了。而且 Win7 買的是隨機版,若主機版壞了,Win7 也隨之不能使用,但 Win8 這套是正式版,不受環境限制,可以在不同的主機版多次安裝,日後在應急時是蠻不錯的。
 
為了安裝 Win10,我第一個想到的就是在 VMware Player 安裝 Win8,再由 Win8 來升級 Win10。安裝 Win8 的過程算是順利,安裝後也順利升上了 Win8.1。
 
到了 Win10 推出前後,我三不五時就把 VMware 的 Win8 打開,就等他在右下角出現安裝通知,結果等了好幾天,一直都沒有,原本擔心會不會是在虛擬機中的 Win8 無法升級?有一天終於出現升級通知了。
 
懷著興奮的心情,開始進行升級的工作,如果天不從人願,出現底下的畫面,無法順利升級。
 
升級 Win10 失敗
 

耗損 CPU 資源的 SearchIndexer.exe

因為工作已經進入最後的趕工階段,所以把 NoteBook 拿出來一起跑程式,讓二台電腦都有事做,才能節省時間。

程式都設定好之後,就讓 NoteBook 開始執行,執行一陣子之後,去看進度如何時,結果卻發現系統報告記憶體不足,而且 CPU 使用率極高。

那個並不是大程式耶,而且筆電所搭配的記憶體比我的 PC 還多,怎麼可能記憶體不足?

不用 Windows 也能跑 Windows 程式

看來在麥金塔上直接執行 Windows 的程式愈來愈有機會了,說不定日後我真的不用寫跨平台的程式。

以下轉貼自
http://taiwan.cnet.com/news/software/0,2000064574,20107643,00.htm


不用 Windows 也能跑 Windows 程式
CNET新聞專區:Ina Fried  03/07/2006

以前,在麥金塔電腦 (Mac) 上執行 Windows 程式,是漫長、痛苦的過程。只有一種選擇:執行 Virtual PC 模擬軟體。

但隨著蘋果電腦公司改用英特爾晶片,選擇日益擴增。其中一個例子,就是蘋果自製 Boot Camp 軟體,讓英特爾架構的 Mac 可選擇以 Windows 或 Mac OS X 作業系統開機。同時,新創公司 Parallels 也推出新軟體,讓微軟作業系統在獨立的虛擬機器 (virtual machine;VM) 上執行,執行效能只慢一點點。

不久後,將有另一種選擇。新選擇的特色是:連 Windows 都不必買。雇員約 20 人的明尼蘇達州小公司 CodeWeavers 採用一種稱為「Wine」的開放原始碼技術,即可在 Mac OS X 環境下執行一些 Windows 應用程式。

能同時使用 Windows、Mac OS 的軟體

我幾乎沒有使用麥金塔的經驗,只有在前前公司測試網路時,因為需要測試 apple talk 的通訊協定,才有機會略為接觸。

那麼現在為什麼會關心麥金塔?因為據說國外有不少佛教學者是使用麥金塔,他們就無法使用我們提供的閱藏系統與全文檢索,所以我們會希望做出跨平台的閱藏系統,除了 Windows 的使用者之外,讓 unix 系列與麥金塔的使用者也都能使用這套工具。

所以若麥金塔能直接執行 windows 的程式,那就太方便,至少我們就不用頭痛去想如何設計跨平台,因為那對我而言,是一個由零開始的工程,更何況目前現有的選擇方案--主要是跨平台的 C# 及 Java,在功能及效率上,都還不是讓人很滿意。

訂閱文章


about seo