2

メモリからコンバータを作成したい。

etrypoint_datを作成し、次にコンバーターからcファイルを作成し、2つの構造体を結合しました。

 },
    "", 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);
4

2 に答える 2

2

自分で見つけました。

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を削除する必要があります。質問との一貫性のためにそれを残します。

于 2011-05-13T11:46:15.187 に答える
0

代わりに、リンクする静的ライブラリを構築するモード「static」でpkgdataツールを使用することをお勧めします。この他の例は、文書化されていない、壊れやすい壊れやすい方法です。

于 2011-05-17T18:21:36.907 に答える