jejer@wordpress Anything Worth Doing is Worth Doing Well

31Dec/09Off

HGE疑难解答整理

VS2005编译的C++程序在其他机器上不能运行的解决方法
1:
project->properties->conifguration    properties->general->common    language    runtime    support
项目属性-->配置属性-->公共语言运行库
关闭    公共语言运行库
2:(项目--属性--配置属性--C/C++--代码生成--运行时库--多线程调试(/MTd))
VS2005开发环境设置:

HGE的编译环境是很简单的,只要在include和lib目录设到你的HGE目录下就行了,不需要装Direcx8.0的SDK也能编译的喔。。
下面我说一下携带编译环境的设置(就是直接拷贝到别的机子,别的目录也能用c++直接编译,不需要再设置编译环境,这样别人下载你的代码就不会因为不知你的编译环境设置而通不过编译了)
一:vs2005下编出来的程序,在没装。net的机子上运行的设置。(不知为什么,有很多人装好的vs2005默认是没。net是不能运行的)
配置属性-C++-代码生成-运行时库-多线程调试/MTd

配置属性-常规-公共语言运行库支持-无公共语言运行库支持

二:携带环境的设置+携带中文字体设置环境。
1,把官方的HGE解压缩,差拷贝到你的程序目录下。把“微妙的平衡的2种中文显示方案"的源文件改名为FontCN,差拷贝到HGE的目录下。
2,如下图设置目录..
3,新建一个筛选器,把这几个文件都加入来(很重要喔,不然中文字体会编译不成功的喔)
配置属性-链接器-常规-附加库目录设置为 .\HGE\lib\vc

配置属性-链接器-输入-附加依赖项:hge.lib hgehelp.lib
忽略特定库:LIBC.lib;libcmt.lib;LIBCD.lib



中文设置:配置属性-C++-常规-附加包含目录 .\HGE\include .\HGEFontCN\FreeType\include


还有,Release模式也要这样设置一次喔,不然Release编译时会报错的。。

HGE开始的去掉LOGO
//w 不显示DEMO LOG
hge->System_SetState((hgeIntState)14, (int)0xFACE0FF);
1.8的要用
hge->System_SetState(HGE_SHOWSPLASH, false);         //HGE开始的去掉LOGO

整理自HGE中文社区

Tagged as: No Comments
27Dec/09Off

Android 疑难拾遗

1.使系统文件可写:

mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system

2.设置DNS:

setprop net.dns1 8.8.8.8

3.安装Google拼音输入法时遇到ABI不符,无法安装:

vi /system/build.trout.prop
把
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
换成
ro.product.cpu.abi=armeabi
ro.product.cpu.abi2=armeabi-v7a
同样再
vi /system/build.sapphire.prop

持续更新
#fuckgfw

Tagged as: No Comments
23Dec/09Off

Hostours圣诞节优惠码

优惠码:Merry Christmas (可享受10%优惠)

该优惠码仅限新用户,仅限使用一次,仅能使用20次,用完为止。

您可以给您的朋友该优惠码,以便以优惠价格享受我们的主机服务。

详情请点击:http://my.hostours.com/aff.php?aff=003

20Dec/09Off

在Android上用TunnelDroid(OpenVPN)实现cmwap完美穿越

因为Android平台的限制,用cmwap接入点接入网络时只有内置浏览器会经过代理10.0.0.172:80,其他程序无法使用互联网.

之前我一直使用@biaji开发的cmwrap让其他程序上网,cmwrap使用iptable重定向数据流,结合hosts文件做域名解析,所以你向让其他程序穿过cmwap时需要手动修改hosts文件添加ip-domain记录.

今天在twitter上听见某位推油提到TunnelDroid,我想到尝试用它做cmwap穿越.TunnelDroid的SourceForge地址是:http://sourceforge.net/projects/tunneldroid/files/

本方法需要一个可以连接的OpenVPN服务器.用Linksys路由器架设OpenVPN的方法参见:http://www.jejer.net/?p=3931

我按照README顺利联通了架在路由器上的OpenVPN服务器,但不幸的是网络无法访问.

查看TunnelDroid发现了一些有趣的信息:

TunnelDroid Log

TunnelDroid Log

错误信息大概意思是默认路由添加失败.

以命令查看tap0虚拟网卡发现tap0没有ip信息,我不知道这是不是TunnelDroid的BUG.
同样以命令修复之:busybox ifconfig tap0 192.168.10.140 netmask 255.255.255.0
然后添加路由项:busybox route add –net 192.168.10.0 netmask 255.255.255.0 dev tap0
busybox route add default gw 192.168.10.1 dev tap0

如此操作之后我发现已经可以ping到路由器的ip了,但是DNS解析还是不行.这好像是Android的BUG,因为busybox ping就可以通.
又在网上一顿搜索,找到了制定DNS的命令:setprop net.dns1 192.168.10.1

OK这些命令过后终于可以上网了.

fix ip gateway dns

fix ip gateway dns

打开浏览器看看ip哈哈,已经变成电信ip

ip地址验证

ip地址验证

再开Twidroid看看,完全没有问题:

Twidroid验证穿越

Twidroid验证穿越

为了方便连接,我把上面的命令写成一个sh脚本放在sd卡下

#!/system/bin/sh
busybox ifconfig tap0 192.168.10.140 netmask 255.255.255.0
busybox route add –net 192.168.10.0 netmask 255.255.255.0 dev tap0
busybox route add default gw 192.168.10.1 dev tap0
setprop net.dns1 192.168.10.1
busybox route

每次TunnelDroid连接完成后去运行一下这个脚本就可以上网了:

sh脚本

sh脚本

完成!

从而实现cmwap完美穿越,不必再更改hosts文件,DNS解析正常.与cmnet无异.

参考:

SmartQ 5 在 Android 1101固件系統下使用華為 E180 USB Modem 成功上網

#fuckgfw

---------------------------------完美的分割线-------------------------------------

20091225更新:

使用tun代替tap,可指定ip地址
使用route-up "cmd"替代sh脚本设置DNS,省去连接后运行脚本的麻烦

server.ovpn

daemon
ifconfig 10.8.0.1 10.8.0.2
proto tcp-server
port 443
dev tun21
cipher BF-CBC
comp-lzo yes
keepalive 15 60
verb 3
secret static.key
status-version 2
status status
在路由器上配置iptables
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
client.ovpn
dev tun
ifconfig 10.8.0.2 10.8.0.1
secret static.key
proto tcp-client
remote jejer.3322.org 443   #xxxx为你申请的的3322.org动态网址
keepalive 10 60
resolv-retry infinite
nobind
persist-key
persist-tun
cipher BF-CBC
comp-lzo
verb 3
float
http-proxy-retry                  #要通过cmwap网关的话要加上这句和下一句
http-proxy 10.0.0.172 80
route-gateway 10.8.0.1
redirect-gateway def1
dhcp-option DNS 10.8.0.1
#G1需要下面两句来设置DNS,在电脑上不需要,注销掉即可
script-security 2 system
route-up "setprop net.dns1 10.8.0.1"

TunnelDroid连接完成之后即可.不必再执行修正脚本.
#fuckgfw

19Dec/09Off

Android G1 简洁使用漫谈

转眼G1已经入手小半年,从刚开始的很有激情的刷ROM找软件折腾机器到现在洗去繁复,简洁使用.我想这是回归了Google简洁好用的本质.

ROM的选择

Android为开源操作系统,除了官方原版之外,各路高手制作的MOD版也是很好的选择.

对我而言,比较倾向于选择原版,简洁使用的前提是操作系统的稳定.不过无奈G1硬件太弱,处理速度比较慢,我现在使用的还是MOD版.

有三个MOD版本集中出现的地方:

  1. XDA Developers ->Dream -> Dream android development
  2. Android中文论坛-机锋网
  3. 安卓网

英文论坛XDA自然是高手如云,而且最新机型DUMP出来的ROM也一般会出现在这里,所以XDA论坛会有很多ROM可供选择,这里有一张表格对各种ROM进行对比:http://spreadsheets.google.com/ccc?key=0AjdWTdCIJ88udEFzMnFhM3hsdmVNS1NJMkJMY1VJN2c&hl=en(Google表格目前被墙奸)

我选用的是据说目前速度最快的Cyanogen修改版

对于SPL RADIO RECOVERY的说明

SPL:刷机操作中最危险的文件,刷错版本或顺序将导致变砖无法软件修复.

目的:刷SPL是为了刷入Hero或者其他特殊的ROM,不是必刷,CyanogenMod版不需要刷SPL.

原理:SPL相当于分区文件,控制芯片中文件系统的分配,修改版的SPL加大了内存.

RADIO:基带芯片驱动程序,需要与SPL配合使用,建议升级成最新版.

SPL与RADIO最新版下载地址:http://code.google.com/p/sapphire-port-dream

注意:必须先刷入最新版RADIO再刷SPL,错误的顺序将导致G1变砖.

RECOVERY:恢复模式程序.在系统无法启动时负责刷新ROM等工作.

这里要说明一下G1的启动顺序:Bootloader之后会有两条启动路径,正常启动ROM,启动recovery(启动时按住HOME键).

目前功能最全的recovery版本是RA MOD:http://forum.xda-developers.com/showthread.php?t=566669

它附带wipe和备份功能,相当强大,这里就不在赘述.

另外建议刷新ROM之前先用recovery的wipe功能彻底清除以前安装的程序,给新ROM一个干净的环境,防止出现难以预料的错误.

软件最精简化

系统自带的浏览器 GMAIL已经相当好用.

我刷机之后安装的软件有:

  • cmwrap 使软件可以通过cmwap接入点访问网络,它本身使用iptable+hosts穿越cmwap,可以修改etc/hosts文件自己添加需要穿越的网址
  • Google拼音输入法 CyanogenMod的ROM是不带中文输入法的
  • Twidroid twitter客户端,可自定义API 我的ID:@jejer 欢迎follow
  • ASTRO 文件管理器
  • Tether 通过WIFI共享手机网络.
  • Latitude Launcher 在Google地图中开启谷歌纵横

貌似写成新手教程了.

#fuckgfw