由于公司要开发一个定位的软件,本来是想拿给别人开发,但又因为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的字符串。
接下来我将我的代码修改了一下:
const AECHAR * dlgCaption = L"dialog demo"; const AECHAR * dlgText = L"this is a dialog";
然后再显示了一次,,,ok...i solved it.....
2、从资源文件中读取字符串变量
也一直是乱码,这是为什么呢,按网上建议,这不应该会是乱码啊,因为变量我也都是设置为unicode啊。
之前我一直没去看debug信息的,经过认真的看debug信息后发现:debug警告了资源文件的名字只能以字母开发以数字和字母混合,但最好不要有大写字母混在里面
于是乎,我按这个警告去修改我的资源文件,,没想到真的解决了该问题。
注意噢"DBGPRINTF"是一个很好用的调试工具