![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
![]()
Доброго времени суток Уважаемые эксперты. В такую задницу залез, реально потерялася я. Вычитал что предпочтительнее использовать _DllMainCRTStartup нежели DllEntryPoint так как ее конструкторы автоматом инициализируют что-то там в _CRT_INIT. Ладно, это все конечно круто, но находятся ли они вообще в какой-то библиотеки или нет, эти функции, данные такие как __proc_attached, _pRawDllMain?
_СRT_INIT(...) вообще никак не определяется, вообщем undefined. Нашел на сайте пример использования, но локальные переменные меня убивают, с какой (_O_) они по вылазили, в примере были подключаемые библиотеки, но не в одной из них нет никаких флагов __proc_attached и прочей дребедени. Кто сталкивался, будьте добры, подскажите как вообще этим управлять, я декомпилирую один *.dll файл, там используется DllEntryPoint, я собственно буду придерживаться рядом с тем что в *.dll но хотелось бы и с _DllMainCRTStartup посмотреть как будет выглядеть это. Вообщем если кому не трудно, приведите рабочий код процедуры этой самой точки входа, за ранее благодарю за предоставленную помощь. Код:
Последний раз редактировалось coNsept; 23.07.2011 в 19:59. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 31.01.2011
Сообщений: 160
|
![]()
эти точки входа скорее всего сгенерирован автоматически, поэтому собственно какой вам интерес, ведь код самой dll скорее всего начинается в DllMain
? |
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
![]()
Эти точки можно генерировать в ручную, в коде одной из *.dll (строки выделил красным цветом) она передает 3 параметра уже DllMain.
Цитата:
Код:
Последний раз редактировалось coNsept; 23.07.2011 в 22:06. |
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 31.01.2011
Сообщений: 160
|
![]()
все равно
Код:
PUSH ESI = 1; // fdwReason - DLL_PROCESS_ATTACH - загрузка dll PUSH EBX = 06000000; // hinstDLL - дескриптор dll не вижу ничего криминального - обычная загрузка |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
![]()
Считаешь что ими нельзя никак манипулировать?
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 31.01.2011
Сообщений: 160
|
![]()
а для какой цели?
однако стандартный код точки входа есть в */Microsoft Visual Studio *.*/VC/crt/src/crtdll.c |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 31.01.2011
Сообщений: 160
|
![]()
crt в студии идет с открытым кодом
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
![]()
Интересно, я вот сейчас кое что проверил и заметил такую вещчь интересную.
*.dll что я декомпилирую начинает свое выполнение с точки DllEntryPoint Скомпилил свою *.dll она начинает работу с _CRT_INIT(...) Почему так? |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
наверно потому что они компилировались с разными настройками.
да и вне вашей ДЛЛ вы просто можете и не знать что есть что... Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 31.01.2011
Сообщений: 160
|
![]()
судя по коду _CRT_INIT из __DllMainCRTStartup, а та из _DllMainStartup
думаю просто символов нету |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Форма входа Ucoz | makar3000 | HTML и CSS | 10 | 13.01.2011 00:32 |
Не найдена точка входа в DLL, не могу разобраться | Ozerich | Qt и кроссплатформенное программирование С/С++ | 4 | 21.04.2010 19:46 |
Точка входа CheckForReadOnlyResource не найдена | Goodwin98 | Операционные системы общие вопросы | 3 | 03.03.2010 16:51 |
DLLentrypoint в Delphi | Horus92 | Общие вопросы Delphi | 23 | 29.11.2009 14:04 |
не найдена точка входа. | Черничный | Общие вопросы Delphi | 17 | 23.07.2008 11:54 |