由於公司要開發一個定位的軟體,本來是想拿給別人開發,但又因為brew手機有很多型號很難讓別人一個一個的適配。所以只好自己來摸索了,對C又十分的陌生
只好慢慢的動起來^--^
以下是我遇到的幾個問題:
一、亂碼問題
1、直接在代碼中定義了兩個變數
const AECHAR * dlgCaption = "dialog demo";const AECHAR * dlgText = "this is a dialog";
然後顯示到模擬器的螢幕上但顯示的是亂碼,找了資料沒找到辦法,最後回想起從高通下載到的資料"Programming_Primer.pdf"裡面的myfirstapp,看了看代碼發現了它跟我代碼的區別是在字串變數前它加了一個"L"的字元,這是什麼意思呢?找了一下資料原來:
L (converts following character or string to its Unicode counterpart)表示轉換成寬字元,就是每個字元佔用兩個位元組。 例:strlen("asd") = 3; strlen(L"asd") = 6;將ANSI字串轉換成unicode的字串。
接下來我將My Code修改了一下:
const AECHAR * dlgCaption = L"dialog demo";const AECHAR * dlgText = L"this is a dialog";
然後再顯示了一次,,,ok...i solved it.....
2、從資源檔中讀取字串變數
也一直是亂碼,這是為什麼呢,按網上建議,這不應該會是亂碼啊,因為變數我也都是設定為unicode啊。
之前我一直沒去看debug資訊的,經過認真的看debug資訊後發現:debug警告了資源檔的名字只能以字母開發以數字和字母混合,但最好不要有大寫字母混在裡面
於是乎,我按這個警告去修改我的資源檔,,沒想到真的解決了該問題。
注意噢"DBGPRINTF"是一個很好用的調試工具