#winapi #visual-studio-2005
#winapi #visual-studio-2005
Вопрос:
IDE: VS2005
Можно ли как-нибудь узнать, почему произошел сбой ReadFile()? Я не могу найти причину, по которой некоторые INI не могут быть прочитаны. Спасибо.
Редактировать:
CIniFile iniFile;
iniFile.SetPath( "C:\Services\Server\Server.INI" );
if( iniFile.ReadFile())
my code...
Программа никогда не попадает в блок if.
И, извините за путаницу. Я использую эту библиотеку для класса CIniFile. Надеюсь, эта информация поможет точно определить проблему. http://www.codeproject.com/kb/cpp/cinifileByCabadam.aspx
ПРАВКА 2: Я нашел причину, это потому, что некоторые ini-файлы сохранены в формате Unicode. И это причина сбоя ReadFile(). Но теперь вопрос в том, как читать ini-файлы в Юникоде.
Комментарии:
1. добавьте немного кода, если повезет, кто-нибудь сможет обнаружить проблему.
2. какой именно CIniFile вы имеете в виду? — нет WinAPI CIniFile::ReadFile AFAIK
3. @Anders, я обновил свой пост. Пожалуйста, проверьте, достаточно ли это понятно, спасибо.
Ответ №1:
Обычно GetLastError() должен выдавать вам номер ошибки для поиска
РЕДАКТИРОВАТЬ: В проекте CIniFile, похоже, нет конструктора по умолчанию, попробуйте вместо этого CIniFile( строка const iniPath ), т.е.
CIniFile iniFile( "C:\Services\Server\Server.INI" );
if( iniFile.ReadFile())
ПРАВКА 2: Хорошо, вам нужно будет изменить код, чтобы вместо использования fstream использовать wfstream — см.