Skip to Content

★★

使用 C++ Builder 撰寫 Android 程式

使用 C++ Builder 撰寫 Android 程式

安裝 C++ Builder Android

本篇參考此頁的說明

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

在安裝 C++ Builder 時,或是在已安裝好的系統上,要安裝 Android 的相關資料。

 

解決 Embarcadero C++ Builder 10.2 頻繁出現 LME200 Unable to perform link 的錯誤

今天編輯程式,不斷出現這個問題。

[ilink32 Warning] Warning: Error detected (LME200)

[ilink32 Error] Error: Unable to perform link

這問題其實在好一陣子之前已經出現過,當時的解決方法是把 C++ Builder 和我寫的程式目錄都設為防毒程式的白名單,就沒有這個問題了。

後來的日子,偶爾還是會出現,但有時重新編譯二、三次,問題就不見了。因此也沒有特別去管它。

*** *** ***

今天情況有點不同,出現次數非常頻繁,多到讓我受不了,無法再寫程式,只好上網求助 Google 大神。

有人提到一個方法,它說在這個目錄下 

C:\Program Files (x86)\Embarcadero\Studio\xxx\bin

找到 ilink32.exe

按滑鼠右鍵選內容 -> 相容性 -> 相容模式 ,選擇相容於 Windows 7

另外還建議把 ilink32.exe 設定成以系統管理員身份執行,同時  C++ Builder 也用系統管理員身份執行

一開始我只用相容 Windows 7 就解決問題了。結果正在寫本文時,重新測試,突然發現上面三種方法都用也不行了。(悲哀 sad)

再來找其他方法吧 .....

在 Android 手機安裝莊春江工作站

有人詢問如何在 Android 手機安裝莊春江老師所提供的阿含經與尼柯耶以及其他資料,其實就是整個莊春江工作站的內容。因為在離線時,也希望能隨時查詢站上的資料,所以我就試了一下,並把過程記錄下來,提供有需要的人參考。

莊春江工作站單機版可以在此下載

http://agama.buddhason.org/

佛法幼幼班教材

這是一份基礎佛法心得,也是我試著用最簡單的說明,為佛法的次第做一個簡明的介紹。希望給對佛法沒有太多概念的人,有一個可以快速入手的地方。

Heaven

2017/07/01 ~ 2017/08/30

滅諦與業力法則

苦既然是有因有緣而生起的,那麼只要不再造作苦因,自然就不會再有苦果生起,徹底滅苦也就成為可能。

因為最主要的苦因就是渴愛,所以滅諦最簡單的教導,就是「渴愛滅則苦滅」。

不過要徹底滅苦,有二個主要因素要考慮。第一個就是不再造作新的苦因,這就是前面提到說明。第二個就是,過去造的苦因要如何止息?

佛陀教導我們,過去無始劫來,我們已經造下了多到無法想像的各種業力,如果要等這些業力都成熟,真的不知道要等到什麼時候?如此一來,苦的止息難道是寄託在遙遠而不可知的未來嗎?

所幸佛陀也教導我們,並非要等到全部的業都成熟之後才能徹底滅苦。業的成熟是要有因緣的,只要我們不提供適當的因緣,業就沒有成熟的機會。

苦諦與四法印

「云何苦如實知?謂生苦、老苦、病苦、死苦、恩愛別苦、怨憎會苦、所欲不得苦,如是略說五受陰苦,是名為苦。」《雜阿含.344 經》

「苦」最常聽到的解釋就是上述經文中的八苦。不過看起來好像只有七苦,最後用五受陰苦做為總結。有的經文則不止八苦,有時也會看到憂悲惱苦。這些是列舉式的說明,不一定每次內容都相同,最常聽到的就是八苦。

前七苦是比較容易理解的苦,也就是一般苦難的苦。第八苦是五受陰苦,也有譯為五取蘊苦,這就包括了一切的苦,而前七苦也都是透過五蘊感知而來的。

五蘊就是「色、受、想、行、識」,一切有為法皆包含在這五種法之中。簡單來說「色」就是地水火風四大、物質,「受」就是心的感受,「想」就是心對事物的標記、想像,「行」就是除了受與想之外,其他心的作用,皆屬於行。「識」則是了別識知的功能。

更簡單的分類就是「名」與「色」二法。色就是色蘊,其他四蘊都是名法,也就是非物質的心法。

《雜阿含282經》與《中部152根修習經》的三種修根

關於《雜阿含282經》與《中部152根修習經》二經提到三種修根的方法與次第略有不同,我的看法如下。

其實這種問題我也沒能力考證什麼,通常都只有自己的 "選擇" 而已,也就是沒什麼太多的理由,就是自己的想法。

經中提到的三種修根,印象中好像有看到論中談到 "凡夫" 修諸根,我是覺得這三種並沒有針對凡夫來談,我先列我覺得由易而難的次第。

1. 「眼、色緣,生眼識,生可意,生不可意,生可意、不可意,彼聖弟子慚、恥、厭惡。

這是有學行者的修根,雜阿含經與中部尼柯耶看法一致。

2.「眼、色緣,生眼識,生可意,生不可意,生可意、不可意,彼聖弟子如是如實知:『我眼、色緣,生眼識,生可意,生不可意,生可意、不可意,此則寂滅,此則勝妙,所謂俱捨。』得彼捨已,離厭、不厭。

3.「緣眼、色生眼識,見可意色,欲修如來厭離,正念、正智。
眼、色緣,生眼識,不可意,{故}[欲]修如來不厭離,正念、正智。
眼、色緣,生眼識,可意、不可意,欲修如來厭離、不厭離,正念、正智。
眼、色緣,生眼識,不可意、可意,欲修如來不厭離、厭離,正念、正智。
眼、色緣,生眼識,可意、不可意、可不可意,欲修如來厭、不厭俱離,捨心住、正念、正智。

以上經文引用至莊春江工作站 http://agama.buddhason.org/SA/SA0282.htm

自己寫一個 GUI 版 C++ Builder 單元測試

最近在寫一個較大的專案,而且要能在 Windows 和 Mac 上執行(Android 和 iOS 以後再考慮),加上第一次用新版 C++ Builder 跨平台的版本寫大專案,所以凡事起頭難,這也是第一次想加上單元測試,以利後續檢查與驗證。

C++ Builder 上面宣稱已有跨平台版本的 DUnitX,詳見如下:

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

主要方法是在 __published 的宣告範圍內寫下要測試的程式,然後自行把每一個測試程式寫進去,執行時就會逐一執行測試程式,最後把結果列出來,如下圖。

用 #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

 

將 TWebBrowser 設定成 IE 11

C++ Builder 不管是 VCL 或 FireMonkey,都有 TWbeBrowser 元件。在 Windows 系統下,該元件就是一個內嵌的 IE。

其實我很想不要用 IE,希望找到內嵌的 chrome 元件,但目前找到的好像不是很好處理,也擔心日後升級問題,所以在 Windows 下還是暫時先以 IE 為主。

查了說明文件,指出內建的 TWebBrowser 預設的版本是 IE 7。所以我寫了一個很簡單的程式,用 FireMonkey 版的 TWebBrowser,直接連到一個 HMLT5 的網頁

https://www.w3schools.com/html/tryit.asp?filename=tryhtml5_video

這個網頁我在 IE 上測試,要 IE 11 才能順利執行。

底下是我的測試程式執行結果,可以看到就是沒有什麼結果。

訂閱文章


about seo