windows下如何取得资源数据
最近在做icu移植工作。icu是为Unicode编码字符的一些相关操作写的函数库,要将icu4c(目前使用icu4c4.0)部署到我们自己的平台上,遇到不少编译的问题,其中最头疼的就是不知道ICU是怎么读取到初始化数据的。调试了代码,最后发现初始化的时候运行到udata.c的openCommonData函数中的
tData.pHeader = &U_ICUDATA_ENTRY_POINT;
udata_checkCommonData(&tData, pErrorCode);
setCommonICUData(&tData, NULL, FALSE, pErrorCode);
这三句的时候没有得到数据导致初始化失败。其中U_ICUDATA_ENTRY_POINT经过宏替换后是icudt40_dat,tData是一块内存,它有一个头,头之后开始存放初始化的数据。icu在windows下是能够得到数据的,但在我们的平台上就得不到,我想应该是移植的时候数据路径没有设置好。我想参照Windows取得数据的方法,可是特别对 tData.pHeader = &U_ICUDATA_ENTRY_POINT;这一句怎么工作得到数据的感到不解。有朋友知道它的工作过程么?谢谢。
PS:windows下编译出和这个icudt40_dat有关的只有icudt40.dll和icudt40l.dat,它们放在不同的目录下面。