0

XE2(Delphi6から)にアップグレードする必要があります。

私はこれについて多くの情報を収集しましたが、そのうちの1つは私にはわかりません。

私たちはStringを使用しています-XEのAnsiStringとは何ですか。

私が知っているように、Unicode変換の副作用を回避するために、ライブラリ内のすべての(P)Ansi [String / Char]を置き換える必要があり、プロジェクトをコンパイルできます。

大丈夫ですが、TStringListも使用しており、単純に変更するTAnsiStringListクラスが見つかりません...;-)

あなたはこれについて何を知っていますか?これも問題を引き起こす可能性がありますか?または、このクラスには文字列を保持するオプションがありますか?

(わかりました、3つの質問のようですが、1つだけです)

プログラム/OS言語はハンガリー語で、文字セットはWIN-1250で、ŐやŰなどの奇妙な文字が含まれています...

あなたのすべての情報、リンクなどをありがとう。

4

1 に答える 1

2

1) まず第一に、すべてのプロジェクトを Unicode 対応の TStringList に変換するのではなく、AnsiStringList を使用する必要があるのはなぜですか? 実行可能な代替案を提案するには、特定の詳細な理由が必要です。

Unicode は、windows-1250、windows-1251 などのスーパーセットです。通常、ロケール固有の文字列はすべてロスレスで Unicode に変換されます。IT は逆で、Unicode から AnsiString への変換であり、データが失われる可能性があります。明示的または暗黙的 (「if char-var in char-set」での AnsiChar 削減など)

コンパイラが PChar または PAnsiChar を渡すかどうかをチェックできない DLL のような型安全でない API を使用している可能性がありますが、TStrings のようなオブジェクトを DLL に渡すべきではありません。そのための BPL があります。

したがって、おそらくTAnsiStringListは必要ありません

2) Jedi Code Library から TJclAnsiStringList を取得できます

3) XE2ストックTList<AnsiString>タイプが使える

于 2012-12-18T11:00:28.030 に答える