我想从内存创建一个转换器。
我已经创建了etrypoint_dat,然后从我的转换器创建了c文件并将两个结构连接在一起:
},
"", 1, 0, {
{ "ibm-5348_P100-1997", (const void *)&ibm_5348_P100_1997_cnv }
}
从我调用的代码
udata_setAppData("icupackage.dat", &ntrypoint_dat, &status); // return is good
现在我的问题: 如何在调用setAppData后创建转换器?
以下不起作用:
UConverter* conv = ucnv_open("ibm-5348_P100-1997", &status);
答案 0 :(得分:2)
我自己找到了。
必须以这种方式命名两个结构之间的连接:
{ "icupackage.dat/ibm-5348_P100-1997.cnv", (const void *)&ibm_5348_P100_1997_cnv },
然后从代码中我们可以调用:
status = U_ZERO_ERROR;
udata_setAppData("icupackage.dat", &ntrypoint_dat, &status);
然后:
status = U_ZERO_ERROR;
_cnvCP1252 = ucnv_openPackage("windows", "ibm-5348_P100-1997.cnv", &status);
应删除.dat
。我留下来与问题保持一致。
答案 1 :(得分:0)
我建议您使用pkgdata工具和'static'模式,它将构建一个静态库供您链接。另一个例子是无证且脆弱的脆弱方式。