Консультация № 159531
03.02.2009, 20:26
0.00 руб.
0 3 1
Как загрузить dll (LoadLibrary), которые зарегистрирована в реестре в SharedDlls? Название Dll я знаю. Какими методами найти, зарегистрирована ли, ну и всё остальное в плане получения полного пути файла для передачи в LoadLibrary?

Обсуждение

давно
Посетитель
7438
7205
04.02.2009, 01:16
общий
Первое, что приходит на ум: просмотреть ветку реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Неизвестный
04.02.2009, 18:07
общий
Это понятно. Я и хотел узнать, какими функциями и простенький пример (желательно). Неохота открывать Америку...
давно
Посетитель
7438
7205
05.02.2009, 02:57
общий
это ответ
Здравствуйте, effort!
Вот Вам небольшой пример программки, которая выводит на экран содержимое
ветки реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls.
Осталось только найти среди szName нужную, и задача решена.
Удачи!

Приложение:
#include <windows.h>
#include <stdio.h>

void main(void)
{
char szName[MAX_PATH];
DWORD cbName;
DWORD dwValue;
DWORD cbValue;
DWORD dwType;
HKEY hkey;
int i;

if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\SharedDlls",
0, KEY_QUERY_VALUE, &hkey))
{
for (i=0 ;; i++)
{
cbName = MAX_PATH;
cbValue = sizeof (DWORD);

if (ERROR_NO_MORE_ITEMS == RegEnumValue(hkey, i, szName,
&cbName, NULL, &dwType, (PBYTE) &dwValue, &cbValue))
break;

if (dwType == REG_DWORD)
printf("%s = %d\n", szName, dwValue);
}
RegCloseKey(hkey);
}
}
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Форма ответа