Всем привет! Впервые взялся написать Dll, но возник вопрос: Как dll'ку отлаживать? Выставляю Host application, расставляю brake-поинты. Запускаю. Запускается Host application. Ни на одном брейкпоинте остановки не происходит. При чем сама dll'ка как мигалка на ментовской машине то работает, то не работает (при 1м запуске может заработать, а потом отказаться работать). Подскажите кто сталкивался?
да, указал. Я же говорю, что Host application (exe-шник) запускается, но при этом на брейкпоинтах dll'ка не останавливается и есть подозрение, что не работает.
может не загружается экзэшником либо где то возвращает ошибку при поиске адреса?.вообще еще можешь функционал перенести в саму программу и отдебажить ее. хотя в таком плане еще проверяй возврат функций и ИДЕ-шный отладчик не сильно полагайся,попробуй в ольгу кинуть.
Функционал отработал в проге. Потом кинул в dl. в ollybdg кину, заодно и поучусь с ним работать! Спасибо за советы, позже отпишу как оно
ольго - это вабще треш угар и содомия в чаде адского кутежа, напиши лоадер, который вызовет LoadLibrary(твоядлл), и лоадер и либу собирай в режиме Debug. далее запускай отладку лоадера. например так это выглядит в виндбг, тоже самое будет и в визуал студии, логика я думаю ясна - суй бряки в код дллмайна ежели длл не твоя, то в томже виндбг устанавливаешь фильтр на событие Load Module - Enabled - Handled затем bp $iment(dll_base_addr) - виндбг установит бряк на точку входа.
дебаг там есть, тока дельфя для меня тёмный лес ап, да, у меня хе3 стоит а че реально в дельфях отладки раньше не было?)))
Кароч ставь Delph XE2(не ниже), и будет тебе радость, предыдущие версии такую отладку не поддерживают.
Что за баян? Открываешь проект с *.dll, перекидываешь свой *.exe, который вызывает функции из *.dll в папку где лежит сама *.dll. Далее Run -> Parameters... -> Host Application указываем путь до *.exe который лежит в папке с *.dll -> Ctrl+Shift+F9 и вперёд)