XCode中cpp文件第一行出现Parse Issue: Expected unqualified-id错误的原因

移植Win32下的cpp文件到xcode中编译时发现,代码可以顺利通过编译,但在xcode中一查看cpp文件就会出现标题中的那个错误,虽然不影响编译运行程序,但是所有的h中的关键字都不能高亮且会导致一些关联的语法错误,起初以为是header search path的问题,但排查一通后发现问题原来是出在源文件的编码方式上!

xcode默认是使用UTF-8作为源代码文本文件的字符编码的,曾经为了统一这个,Win32下的cpp也改为了UTF-8,但是windows下的UTF-8文本文件头中会加入几个字节的编码标示,比如UTF-8是EF BB BF,UTF-16也有,是什么记不清了,是2个byte的。

导致xcode parse source时出错的就是这个字节标识,删掉就可以了。

deprecated conversion from string constant to char *

可能是xcode4用的gcc版本比较高的原因,在移植代码的时候出现了这样一个警告,正好提高了一下对const char*的认识。

void foo(char* szArg);

这样的函数这样 foo(“test”); 调用就会提示这个警告,以前可能没太注意过,因为传递的参数字符串是被作为常量处理的,而函数原型却要得不是const指针,也就是说函数内实现是允许修改指针内存的,所以编译器就爆了,理所应当的一个warning,改成const char*参数类型就可以了。

[转]Android Market排名算法及规则

众所周知,做搜索出身的Google,旗下的Market的排名肯定是依据一个形同( A×a% + B×b% + C×c%)的公式计算出来的数值,进行排名的。开发者可根据其排名规则,对自己的产品设计和研发以及推广进行指导。

1. 排名公式里有哪些指标?

指标A、B、C到底是什么?权重a、b、c究竟是多少?这些问题的答案,应该是每个App开发者和运营者都渴望了解的。知道了这个答案之后,有些“聪明”的人就会像当年SP的从业者一样,去刷那些权重大的指标、从而拉升产品的排名了。网上关于此问题的讨论很多都是不了了之、无疾而终。相对较深入的一篇文章《Android Market App Rankings》,也只是在猜想是基于“安装量”的增长和留存。可惜,该作者离正确答案就差一步了…… Continue reading…

Your debugger is not using the correct symbols

今个用WinDBG研究IDT时突然出现!idt命令提示Your debugger is not using the correct symbols,不知何故,试了一些网上提到的解决方法,都不太好使,结果发现只要简单的.reload一下就可以了,真是莫名其妙。

关于短信SMS的class

最近在研究GSM通信模块相关的AT指令时,发现短信部分经常提到个短信的class,不知为何,搜了一下,特此记录:

What are the classes of SM-MT (mobile terminated) messages?

Classes identify the message’s importance as well as the location where it should be stored. There are 4 message classes.
Class 0: Indicates that this message is to be displayed on the MS immediately and a message delivery report is to be sent back to the SC. The message does not have to be saved in the MS or on the SIM card (unless selected to do so by the mobile user).
Class 1: Indicates that this message is to be stored in the MS memory or the SIM card (depending on memory availability).
Class 2: This message class is Phase 2 specific and carries SIM card data. The SIM card data must be successfully transferred prior to sending acknowledgement to the SC. An error message will be sent to the SC if this transmission is not possible.
Class 3: Indicates that this message will be forwarded from the receiving entity to an external device. The delivery acknowledgement will be sent to the SC regardless of whether or not the message was forwarded to the external device.

发现一个DNF在Win7下运行时全屏切换的卡死解决方法

最近又开始玩DNF,再次回归的时候发现新版本多了个窗口最大化模式,以前就喜欢用窗口模式玩,但DNF的分辨率在我1680×1050的桌面分辨率下实在是让我近视!无奈只好忍受全屏的一片模糊效果,现在新版本可以窗口最大化了,看着就“锋利”的多了。但是玩了一会发现,只要是在窗口最大化模式下切换频道等,就会出现黑屏卡死无响应的问题,开始还以为是设置的问题,什么兼容模式,关闭aero主题都试了,还是不行。最后发现秘密(估计实际是BUG…)就是开始游戏时的选区窗口不要选择“全屏显示游戏”!这样就不会再切换频道时的自动换全屏时出现卡黑屏的情况了,希望这个问题能尽快修正!

如何修改Windows Mobile手机的Internet共享分配给PC端的IP地址段

今天在尝试修改双网卡的路由表时发现,WM的Internet共享分配给PC端的IP地址段居然是和内网网卡一样的192.168.0.*段,导致路由表修改起来容易造成混乱,想想这个PC端的IP应该是不能通过强制指定固定IP的方式设置的,于是寻找修改默认分配地址段的方法。
最后发现xda上提到的简单解决方案,无需修改注册表:
Settings -> Wifi -> Network Adapters -> Remote-NDIS Host

The default range is 192.168.0.0/24

I changed mine to 192.168.3.0/24 by keying IP address as 192.168.3.1 and 255.255.255.0 for netmask. the hermes will act as the DHCP server at address 192.168.3.1

就是修改设置中网络适配器部分的Remote-NDIS主机中的ip为指定值,虽然感觉这个方法有点莫名其妙,看似像是设置本机的ip地址的,但修改后试验了一下,确实是成功改变了ip地址!