#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. Хорошо, тогда это совершенно другая (и намного более сложная!) задача. Вероятно, вам следует задать отдельный вопрос.