У нас есть проект поддержки, который был построен на компиляторах VC6. В какой-то части кода у нас есть функция открытия файла с использованием метода ifstream.open(), который терпит неудачу, когда имя файла содержит символы UNICODE, такие как китайские символы. Поскольку компилятор VC6 не поддерживает версию открытой функции wchar_t *, есть ли способ открыть этот тип файла? Я попробовал метод FILE * _wfopen, но он тоже не работает.открытие имени файла, содержащего символы Unicode в компиляторе VC6
Заранее спасибо
В соответствии с руководством RemyLebeau в - я попытался с помощью ERRNO, я получил значение, как 22, который указывает на неверный параметр. Plese см. Мой код std :: wstring filename = _wgetenv (L "IVT_FILENAME"); FILE * stream; stream = _wfopen (filename.c_str(), L "r");
Это прекрасно работает в vc9, и файл открывается, и я умею читать содержимое. Не знаю, почему он не работает в vc6. Значение потока равно NULL
Объявите ограничение и перейдите к нему. –
Visual Studio 6.0 поддерживается '_wfopen': http://msdn.microsoft.com/en-us/library/aa246392(v=vs.60).aspx –
Он поддерживает _wfopen, но он не может открыть имя файла, содержащего символы юникода и возвращает null для объекта FILE *. GetLastError возвращает код 123- имя файла не найден. Когда тот же код i скопирует пасту в visual studio 8.0, он проходит без каких-либо проблем. – user3462791