基本的に私が求めていることは次のとおりです。Unicodeデータがマルチバイトとして解析されるとプログラムがクラッシュしますか?
私はPathFindFileNameA
をユニコード対応パスで使用しています。私はGetModuleFileNameA
を経由して、このパスを取得するが、このAPIは、Unicode文字(たとえば、イタリア語の文字)をサポートしていませんので、それは、システム・パスのその部分での出力ジャンク文字がなります。
のはx
を想定してみましょうは、以下のようなファイルパスにジャンク文字を表し:
C:\Users\xxxxxxx\Desktop\myfile.sys
私はPathFindFileNameA
はちょうどそれが最後の\\
に遭遇するまでstrtok
で文字列を解析し、中に残りを出力することを前提としstr_length - pos_of_lastが与えられたあらかじめ割り当てられたバッファ\\
PathFindFileNameA
は、ユニコード変換に失敗した場合の迷惑メールに遭遇した場合(マルチバイトAPIの逆数が呼び出されたため)、文字列を正しく解析するのか、それともプログラムをクラッシュさせるのでしょうか。
は「ちょうどAPIのワイドバージョンを使用する」「まあちょうどMultiByteToWideChar
を使用する」、またはのようなものを答えないでください。具体的な質問をしていますが、具体的な回答が得られるでしょう。
ありがとうございます!
ドキュメントは、あなたがこれを行うには許可されていることを言っていないので、あなたはそれが危険であることを考慮すべきです。 –
@HarryJohnston公正であるために、ドキュメントには多くのことは言及されていません。しかし、私はそれをあなたの言葉を取るでしょう。 –
システムはUnicodeデータで動作します。なぜあなたはできないのですか?あなたはまだWindows 98をサポートしていますか? –