1

Windows Mobile 6に移植するWin32(XP以降)用に設計されたコードがあります。これには次の行が含まれています。

int count = ::WideCharToMultiByte( CP_ACP, WC_NO_BEST_FIT_CHARS, ..., 0, 0 );

Windows XPでは、これは正常に機能しますが、Windows Mobileでは0を返し、GetLastError()はエラー1004「無効なフラグ」を返します。WC_NO_BEST_FIT_CHARSWindows Mobile6SDKのwinnls.hで定義されています。

::wcstombsこのコードは、呼び出しを0に置き換えるか、0に置き換えると、限定されたテストで機能WC_NO_BEST_FIT_CHARSします。

これらの変更のいずれかを行うことの影響について知りたいのですが。中国語版またはロシア語版のWindowsMo​​bileでプログラムを実行した場合でも、これは機能しますか?

4

1 に答える 1

3

WindowsMo​​bileはWindowsCEに基づいており、ドキュメントによると、WideCharToMultiByteはWindowsCEのフラグWC_NO_BEST_FIT_CHARSをサポートしていません

そのページによると、サポートされているフラグは次のとおりです。

WC_COMPOSITECHECK合成文字を合成済み文字に変換します。
WC_DISCARDNS変換中に非スペーシング文字を破棄します。
WC_SEPCHARS変換中に個別の文字を生成します。
                    (これはデフォルトの変換動作です)。
WC_DEFAULTCHAR変換中に例外をデフォルトの文字に置き換えます。
于 2012-09-24T17:27:55.700 に答える