wince5.0下寬字元的7條經驗總結 by http://blog.csdn.net/xiaoxiongli/ blog
因為wince只支援unicode!!!--僅僅記住這句話,你肯定會栽跟頭,儘管它是真理!
在wince下程式設計需要用16位代表乙個字元的寬字元,由於在windows nt下程式設計習慣了,難免在wince下要犯錯誤,雖然我已經在wince下把「寬字元」三個字刻在腦海中了。
以下是我的經驗總結:
1:一般情況下(注意決不是全部,參見7)wince下設計字串的函式,用text括起來,類也一樣。
比如:cstring str;
str.format(text("hello everyone!!!"));
2:如需用ascii字元(窄字元),也可以這麼用:
char* p; p = "hello";
這樣用是沒有問題的,但要牢記這裡是窄字元,是無法在wince下顯示的,通常情況下還是用寬字元為好,但特殊情況下:比如說用於網路傳輸的情況下會用到這種,比如說我要在pda上寫乙個網路程式,和pc主機進行通訊。當然寫成寬字元應該也沒有什麼問題吧?(應該沒有什麼問題)只不過是網路傳輸量增加了。
3: 所謂寬字元只是和字串有關的,和int或者其他型別無關,該是幾個位元組還是幾個位元組
4:使用函式要注意,不是spintf了,而是swprintf,注意w代表了wchar_t的意思,還有由於wince不支援
5:可以用tchar來增加移植性,不過我不太喜歡用這個東西
6:可以使用widechartomultibyte和multibytetowidechar來進行「寬窄轉換」
7:糾正乙個誤區,並非在所有的wince函式中都需要用寬字元,恰恰想法,有的函式需要用窄字元,比如winsock的某些函式。例如:send(socketabc, "aaaaa", sizeof("aaaaa"))就行,而send(socketabc, text("aaaaa"), sizeof(text("aaaaa")))就無法編譯通過了,當然想傳的話,用結構體是乙個不錯的選擇。
我就是初學wince,所以在這裡栽了跟頭,在ip設定上,用乙個cstring讀進來,沒有轉成窄字元就去連線,導致我用trace來看ip位址完全正確,而就是連不上伺服器,鬱悶,搞了整整一天多才搞出來,浪費了時間啊,最好直接用常量字元傳進去才連的上,這才發現是系統「做了手腳」。
WinCE 5 0 的目錄結構
platform builder 5已經自帶wince 5.0,安裝過程會指定wince 5.0的安裝路徑,預設為x wince500,wince500即為wince 5.0的根目錄。根目錄下主要有以下幾個目錄 public,platform,private,pbworkspaces,others,...
WinCE5 0下觸控螢幕的校準
幫朋友除錯乙個應用程式,應用程式搞定後,定製到系統內後,開機自動執行的時候,觸控螢幕無法使用,可能bsp不是最新的版本,不過自己順便可以學習下,校準觸控螢幕。我把ce裡自帶的那個觸控螢幕校準程式開機自啟動,校準過後,檢視登錄檔裡的值,發現很奇怪,竟然出現負值 1144,920 2332,1652 2...
WinCE5 0和WinCE6 0的編譯選項介紹
在wince5.0中,在 build os 選單中,我們會看到不同的編譯選項 sysgen build and sysgen 和 build and sysgen current bsp sysgen 不用多說,當你在 catalog 中新增或刪除了新的item的時候,就用這個吧。build and...