как определить, была ли библиотека dll зарегистрирована в моей функции c ?

#c #dll #registration

#c #dll #Регистрация

Вопрос:

Вопрос новичка-

Я хочу написать функцию-оболочку в Windows c , которая будет просматривать некоторые переданные входные параметры и на основе того, зарегистрирована связанная библиотека dll или нет, будет отвечать приложению.

Итак, в основном мне нужно

1) зарегистрируйте библиотеки dll в моей оболочке fn 2) оболочка должна сканировать зарегистрированные библиотеки dll

каков наилучший способ сделать это?? с чего начать?

Ответ №1:

Я не уверен, что вы подразумеваете под register — мы говорим о регистрации COM или о вашей собственной системе регистрации?

В любом случае, как только вы узнаете, какие библиотеки DLL загружать, используйте LoadLibrary для загрузки библиотеки DLL в память и GetProcAddress для получения указателей на экспортированные функции из библиотеки DLL. Если вы работаете в стиле плагина, вы, вероятно, захотите вызвать функцию инициализации в DLL и разрешить DLL выполнять любые настройки, которые могут потребоваться для регистрации в вашем приложении.

Комментарии:

1. @bdonlan- Я предполагаю, что моя терминология отражает мою неопытность в программировании на Windows: D Я имел в виду register, чтобы квалифицировать пользовательскую систему регистрации. Я буду использовать loadlibrary и getproc-адрес, чтобы получить указатели fn. Это нормально. В чем я не уверен, так это в том, как посмотреть на предоставленный мне PE .exe, получить импортированные библиотеки DLL и сверить их с библиотеками DLL, зарегистрированными в моей системе. Какое-то направление меня настроило бы. Я узнал, что мне нужно отобразить ее в файл SEC_IMAGE и проанализировать PEs. Это правильный путь??

2. Почему вы смотрите на импорт .exe напрямую?

3. моя цель — написать функцию-оболочку до выполнения exes. Я использую подключение api для отслеживания некоторого кода и его эмуляции. теперь я хочу сделать ее универсальной для работы с разными exe-файлами. Я хочу, чтобы моя система принимала файлы, которые она может эмулировать, говоря «нет» тем, к dll которых я не могу подключиться.

4. Хорошо, тогда это совершенно другая (и намного более сложная!) задача. Вероятно, вам следует задать отдельный вопрос.