まず、これは次の複製ではありません: Turn a C string with NULL bytes into a char arraychar *
. が Unicode の場合、指定された答えは機能しないためです。
問題は、ASCII char * の代わりに UTF-8 でエンコードされた char * を使用しようとしており、各文字の長さが異なるため、これが機能しないことだと思います。
char *Buffer; // your null-separated strings
char *Current; // Pointer to the current string
// [...]
for (Current = Buffer; *Current; Current += strlen(Current) + 1)
printf("GetOpenFileName returned: %s\n", Current);
Unicode 文字列で機能する同様のソリューションを持っている人はいますか?
私はこれに4時間以上頭をぶつけています。Cは私に同意しません。
編集:問題は、char * が ASCII ではなく UTF-8 になっていることだと思います。