2012年12月25日 星期二

簡體字文件出現亂碼的解決方式

常遇到簡體字的 .txt 檔打開後是亂碼:


解決方式是,先下載微軟官方軟體 AppLocal 公用程式,然後安裝。
安裝後,在 "所有程式" 裡面找到 "AppLocal" 並執行它。在 "啟動程式" 裡選擇你要用來開啟簡體字文件的程式,例如:記事本、UltraEdit...等等。接著將簡體字文件拖至剛剛開啟的記事本或是 UltraEdit,即可正常顯示簡體字!




2012年12月17日 星期一

WinCE 5.0 編譯時無法移動 temp 檔

在編譯 WinCE 5.0 的時候出現下方錯誤訊息:
failed moving temp file 'C:\WINCE500\PBWorkspaces\620aAPM\RelDir\EGNNA620aAPM_ARMV4I_Release\bin6872.tmp' to 'C:\WINCE500\PBWorkspaces\620aAPM\RelDir\EGNNA620aAPM_ARMV4I_Release\NK.bin': 5
Fatal error hit, exiting...
makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec).
makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec).
我發現這是防毒軟體小紅傘所導致的,先把小紅傘關掉再編即可!


2012年12月4日 星期二

在 Blogger 上面使用 SyntaxHighlighter 顯示程式碼

網路上相關的資料很多,而且雜七雜八的都不一定正確,弄了好久終於成功,在此記錄一下。

SyntaxHighlighter 官網:
http://alexgorbatchev.com/SyntaxHighlighter/

我看到目前為止比較好的設定教學:
http://www.cyberack.com/2007/07/adding-syntax-highlighter-to-blogger.html

大致上的概念就是要在 blogger 的範本 html 裡面加入 SyntaxHighlighter 相關的 java script 網址才能正常顯示程式碼。
以前的做法是,先到官網下載 SyntaxHighlighter,然後找個網路上傳空間把其中幾個必要的檔案丟上去,之後在 blogger 的範本 html 裡面指向你上傳的網址即可。
但是現在官網提供一種 hosted version,也就是你不用下載檔案,官網直接提供網址,你只要在 blogger 的範本 html 裡面指到官網提供的網址即可。不過缺點是程式碼在 blog 上顯示的時候可能會比較慢一點。
在此記錄的是 hosted version 的方式。

Step 1

Step 2

Step 3

接著在 html 裡面尋找 </head> 標籤,並在 </head> 標籤之前填入以下內容:


















Step 4

範本的部分這樣就大致上設定完成了。比較需要注意的是,如果套用不同的範本,上面的動作應該要再做一遍。
想在 blog 文章中加入程式碼的話就要先切換至 html 編輯模式,並且將程式碼放在 <pre> 與 </pre> 之間即可:
<pre class="brush:cpp">
C++ 程式碼放在這裡!!
</pre>
<pre> 與 </pre> 標籤之間放哪一種語言的程式碼,則 brush 就要設定對應的值。至於 SyntaxHighlighter 支援的 brush 到底有哪些,可以參考:
http://alexgorbatchev.com/SyntaxHighlighter/manual/brushes/

這樣就大功告成了!


C 語言的 volatile 關鍵字


volatile 字面上的意思可解讀為 "易變的 反覆無常的"。

網路上 (http://adrianhuang.blogspot.tw/2011/08/cvolatile.html) 的解釋為:
volatile 變數代表其所儲存的內容會不定時地被改變,宣告 volatile 變數用來告訴 Compiler 不要對該變數做任何最佳化操作,凡牽涉讀取該 volatile 變數的操作,保證會到該變數的實體位址讀取,而不會讀取 CPU 暫存器的內容 (目的是提升效能) 。舉個例子,某一硬體狀態暫存器  (Status Register) 就必須宣告 volatile 關鍵字,因為該狀態暫存器會隨時改變,宣告 volatile 便可確保每次讀取的內容都是最新的。
O'REILLY 書中有這樣的解釋:
有 volatile 關鍵字宣告的 變數/物件,表示它可能會被其他執行中的程式或事件所修改。volatile 關鍵字告訴 Compiler 每次要用到此 變數/物件 的值時,即使程式本身並沒有修改到它的值,都要重新讀取!
常用到 volatile 的情形有:
  1. 硬體暫存器,如狀態暫存器
  2. 多執行緒所共用的全域變數
  3. 中斷服務函式 (Interrupt Service Rountie,ISR) 所使用的全域變數