月度归档:2009年08月

windows中的locale

Locale是指特定于某个国家或地区的一组设定,包括字符集,数字、货币、时间和日期的格式等。在Windows中,每个Locale可以用一个32位数字表示,记作LCID。在winnt.h中可以看到LCID的组成。它的高16位表示字符的排序方法,一般为0。在它的低16位中,低10位是primary language的ID,高4位指定sublanguage。sublanguage被用来区分同一种语言的不同编码。下面是部分primary language和sublanguage的常数定义:

#define LANG_CHINESE 0x04
#define LANG_ENGLISH 0x09
#define LANG_FRENCH 0x0c
#define LANG_GERMAN 0x07

#define SUBLANG_CHINESE_TRADITIONAL 0x01 // Chinese (Taiwan Region)
#define SUBLANG_CHINESE_SIMPLIFIED 0x02 // Chinese (PR China)
#define SUBLANG_ENGLISH_US 0x01 // English (USA)
#define SUBLANG_ENGLISH_UK 0x02 // English (UK)

好,现在我们可以计算简体中文的LCID了,将sublanguage的常数左移10位,即乘上1024,再加上primary language的常数:2*1024+4=2052,16进制是0804。美国英语是:1*1024+9=1033,16进制是0409。。繁体中文是1*1024+4=1028,16进制是0404

为雪豹snow Leopard开启64位内核

默认只是加载32位的,可以在关于本机->更多信息->软件查看是否成功加载了64位模式。是否支持的关键是机器是否具有64位的EFI,查看的命令是

ioreg -l -p IODeviceTree | grep firmware-abi

返回EFI64就是支持的,EFI32就不支持

开启的办法是开机时按住6和4,一劳永逸的办法是修改

/Library/Preferences/SystemConfiguration/com.apple.Boot.plist

结果如下:

<key>Kernel Flags</key>
<string>arch=x86_64</string>

osx以及windows下为qt编译firebird库

windows下:

ibase.pro修改

INCLUDEPATH += “C:\Program Files\Firebird\Firebird_2_1\include”

LIBS += “C:\Program Files\FireBird\FireBird_2_1\lib\fbclient_ms.lib”

qmake ibase.pro

mingw32-make

osx下:

ibase.pro修改

INCLUDEPATH += /Library/Frameworks/Firebird.framework/Headers

LIBS += -L/Library/Frameworks/Firebird.framework/Libraries -lfbclient

#unix:!contains( LIBS, .*gds.* ):!contains( LIBS, .*libfb.* ):LIBS    *= -lgds

qmake -spec macx-g++ -o Makefile ibase.pro

make

INCLUDEPATHINCLUDEPATH += /Library/Frameworks/Firebird.framework/Headers
LIBS += -L/Library/Frameworks/Firebird.framework/Libraries -lfbclient
#unix:!contains( LIBS, .*gds.* ):!contains( LIBS, .*libfb.* ):LIBS    *= -lgds += /Library/Frameworks/Firebird.framework/Headers
LIBS += -L/Library/Frameworks/Firebird.framework/Libraries -lfbclient
#unix:!contains( LIBS, .*gds.* ):!contains( LIBS, .*libfb.* ):LIBS    *= -lgdsqmake -spec macx-g++ -o Makefile ibase.pro