К сожалению, нет способа сделать Unicode текущей кодовой страницей в Windows. Константы CP_UTF7
и CP_UTF8
являются псевдокодовыми страницами, используемыми только в MultiByteToWideChar и WideCharToMultiByte функциях преобразования, как упоминалось Беном.
Ваша проблема похожа на проблему классов Fstream C ++. Конструкторы fstream принимают только char*
имен, что делает невозможным открытие файла с истинным именем Unicode. Единственное решение, предлагаемое VC, - это хак: открыть файл отдельно, а затем установить дескриптор объекта потока. Боюсь, что это не вариант для вас, конечно, поскольку сторонняя библиотека, вероятно, не принимает дескрипторы.
Единственное решение, которое я могу придумать, - это создать временный файл с не-Unicode-именем, которое жестко связано с оригиналом, и использовать его в качестве параметра.