![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отладка DLL [D6, 2000]
SpiderWho © (2008-10-16 12:28:00)Структура каталога
C:\1\master.exe
C:\1\plug\mydll.dll
master загружает dll-ки из папки \plug
Мне нужно отладить mydll.dll
Копирую исходники в C:\1\plug
Запускаю проект под Delphi
Указываю в Run\Parametrs\Host application ->>> C:\1\master.exe
Запускаю, но тут проблема
приложение начинает считать своим рабочим каталогом C:\1\plug и фактически пытается искать плагин в C:\1\plug\plug и естественно ничего не работает.
Не могу в настройках найти возможность (если она есть) указать Рабочий каталог приложения.
Сергей М. (2008-10-16 13:48:00) [1]
> SpiderWho (16.10.08 13:25) [7]
А Attach To Process для отладки никак не подойдет ?
Или хост-процесс сразу при старте грузит плагины, без вмешательства юзера ?
SpiderWho (2008-10-16 13:25:00) [2]На прямую через Browse выбрать не дает (фильтр выбора по .exe)
При указании руками .lnk - файла при старте получаем :
2.1 Date : Thu, 16 Oct 2008 13:19:26 +0400
2.2 Address: 005293BD
2.3 Module : coreide60.bpl
2.4 Type : EDbkError
2.5 Message: Unable to scan program's header: Запрос ReadProcessMemory или WriteProcessMemory был выполнен только частично.
Сергей М. (2008-10-16 12:49:00) [3]
> нету в D6
Тады можно запускать через ярлык, а в ярлыке указать раб.директорию
Palladin (2008-10-16 12:48:00) [4]нету в D6...
Сергей М. (2008-10-16 12:47:00) [5]
> Грузит не мое приложение
> Его исходник изменить проблематично
Проблематично ведь не означает невозможно ..
А кривизна там действительно налицо.
> Не могу в настройках найти возможность (если она есть) указать
> Рабочий каталог приложения
в D6 я не в курсе, но в D7 есть она есть - прямо там же, где указывается хост-аппликация, есть редактируемый комбобокс Working Directory
clickmaker (2008-10-16 12:44:00) [6]положи mydll.dll в папку C:\1\
SpiderWho (2008-10-16 12:39:00) [7]Грузит не мое приложение
Его исходник изменить проблематично ...
реализовано в виде:
procedure LoadPlugins;
var
SR: TSearchRec;
begin
if FindFirst('PLUG\*.DLL', faAnyFile, SR)<>0 then exit;
repeat
C :=LoadLibrary(PChar('PLUG\'+SR.NAME));
GetProcAddress (C,'TPTPluginProperties');
...
end;
until FindNext (SR)<>0;
FindClose(SR);
end;
Сергей М. (2008-10-16 12:30:00) [8]Покажи как ты грузишь плагин ..