WinAPI CIniFile::ReadFile() не может прочитать ini-файл

#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 — см.