首先,这不是以下内容的副本:Turn a C string with NULL bytes into a char arraychar *
,因为当's 是 Unicode时,给定的答案不起作用。
我认为问题在于,因为我尝试使用 UTF-8 编码的 char * 而不是 ASCII 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 字符串?
我已经在这个问题上敲了四个多小时了。C不同意我的看法。
编辑:我认为问题在于 char * 现在是 UTF-8 而不是 ASCII。