用unicode文件名打开

qua*_*ell 3 windows winapi visual-c++

我必须使用一个接受文件名作为字符串(const char*)的库。在内部使用来打开文件fopen。有没有办法使该库接受Unicode文件名?在将Unicode名称传递给库之前,可以使用WideCharToMultiByte将Unicode名称转换为utf吗?

一种可能的(不希望的)解决方案是更改库接口(char* -> wchar_t*)并替换fopen为特定于Windows的_wopen。另一种解决方案是使用创建文件的符号链接并将其传递到库,但这仅限于NTFS卷。

xMR*_*MRi 5

最好的方法是重写lib。。。就是我的2美分。

但是,如果要打开一个现有文件,则可以使用GetShortPathName。 您可以在此处找到有关此方法的现有讨论。