3月 2012

iOS程序开发引用的第三方库之间出现duplicate symbol时的处理方法

iOS程序集成的第三方库过多时,很容易出现某几个库同时用到了一样的函数库,也就是在你的程序link时会提示duplicate symbol,而重复的符号又不是由你自己程序的代码造成的,也就说没法通过直接修改代码把重复的符号去掉!这样呢,要不就要求第三方库提供方该代码,要不就自己修改第三方库的库文件。第一种方法多少有点无理要求,所以还是直接用第二种方法自己解决了吧,也就是直接修改.a文件或framework里的库二进制文件:

Continue reading…

i酷加速器导致windows系统启动时explorer.exe进程出现0xc0000409未知软件异常

最近不知为何XP一启动就会显示 Explorer.exe 未知软件异常 0xc0000409 位置为:0x????????,确定后桌面任务栏消失,explorer进程重启,然后错误依旧,但位置出现变化,如此陷入错误的循环。或者取消了后,弹出JIT调试选项,挂VS,看不到任何信息,进程直接结束。这个错误倒是不影响其他操作,放着不管该干啥干啥也没问题,就是这框实在是碍眼,本着系统裸奔,有病毒木马XX等等一概手动追查到底的精神,我开始行动!
Continue reading…

又是wchar_t的问题,这次是Apple LLVM compiler 3.0的bug!

之前发现过Android上NDK对wchar_t以及相关函数的支持不足问题,后来又发现过iOS上类似的setlocale问题。最近在更新了Xcode 4.2以后,发现之前用的wchar_t相关的东西都不对了,wcslen函数返回的字符串长度不对,而且在gdb中用p查看const wchar_t*变量时,显示的是const void*,貌似就没有wchar_t相关的东西。

这个问题如果切换编译器为之前的LLVM GCC编译器则一切正常,浪费了很多时间排查错误,最后发现更新了最近的Xcode 4.3(4E109)带的Apple LLVM compiler 3.1就没问题了。啊!原来是3.0的BUG。