Форум программистов CodeGuru
17 Январь 2018, 21:49:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Не правильная работа GetPrivateProfileString() и OPENFILENAME  (Прочитано 12499 раз)
0 Пользователей и 1 Гость смотрят эту тему.
FireUltimatum
Новичок
*
Офлайн Офлайн

Сообщений: 2


Просмотр профиля
« : 24 Октябрь 2010, 00:12:52 »

Добрый день. Столкнулся с проблемой при использовании GetPrivateProfileString()/WritePrivateProfileString() с OPENFILENAME. WinApi C/C++.
Суть проблемы: на окне есть Button которой нужно "подгрузить" файл (.dll) в "проект", так же есть ещё 2 Button'a с функциями Save[WritePrivateProfileString()] и Load[GetPrivateProfileString()].
Чтение и запись в файл работают отлично до того момента, когда не подгрузишь файл (.dll) в "проект", потом функции Save[WritePrivateProfileString()] и Load[GetPrivateProfileString()] не работают, т.е. не чего не происходит. Пол года работаю в WinApi такого раньше не встречал. Кто подскажет как избежать данной проблемы? Заранее спасибо.

Функция подключения файла в "проект":
Код:
void OpenLibrary(HWND Hwnd)
{
OPENFILENAME OpenDllLibrary;
char FileName[MAX_PATH] = "";
ZeroMemory(&OpenDllLibrary, sizeof(OpenDllLibrary));
OpenDllLibrary.lStructSize = sizeof(OpenDllLibrary);
OpenDllLibrary.hwndOwner = Hwnd;
OpenDllLibrary.lpstrFilter = "Library (*.dll)\0*.dll";
OpenDllLibrary.lpstrFile = FileName;
OpenDllLibrary.nMaxFile = MAX_PATH;
OpenDllLibrary.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
OpenDllLibrary.lpstrDefExt = "dll";
if(GetOpenFileName(&OpenDllLibrary))
{
SendMessage(LinkLibrary, WM_SETTEXT, NULL, LPARAM(FileName));
SendMessage(LibraryName, WM_SETTEXT, NULL, LPARAM(PathFindFileName(FileName)));
//SendMessage(LibraryName, WM_SETTEXT, NULL, LPARAM(PathFindExtension(FileName)));
EnableWindow(AddLibrary, false);
EnableWindow(DeleteLibrary, true);
EnableWindow(CheckBoxAutoInject, true);
if(IsDlgButtonChecked(Hwnd, CheckBoxAutoInjectID))
{
EnableWindow(ButtonInject, false);
}
else
{
EnableWindow(ButtonInject, true);
}
ShowLog("[Sys] Подключение DLL завершено.");
if(AutoInject == true)
{
AutoInjection(Hwnd, TimeUpdate);
}
}
else
{
ShowLog("[Sys] Подключение DLL отменено.");
}
}
Записан
FireUltimatum
Новичок
*
Офлайн Офлайн

Сообщений: 2


Просмотр профиля
« Ответ #1 : 24 Октябрь 2010, 01:22:02 »

Проблему решил, создавалось 2 конфигурационных файла, в корневой папки программы и подключаемого файла. Информацию брало из файла №2, но при чтении (при случаи двух файлов конфигурации) стопорило чтение.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!