Форум: "KOL";
Текущий архив: 2012.04.29;
Скачать: [xml.tar.bz2];
ВнизBuild и Compile Найти похожие ветки
← →
MTsv DN (2009-05-22 20:43) [0]Всем привет.
Не знаю насколько это сложный вопрос, но меня он обескуражил. Есть код:library KOLLib;
uses
KOL;
begin
end.
Если сделать CTRL+F9 (Compile) на выходе получает файл 17920 байт. А если сделать SHIFT+F9 (Build) на выходе получает файл 16896 байт.
Как оказалось во втором случае отсутствует секция релоков в DLLке, а она насколько я знаю для библиотеки довольно важна. Так вот вопрос:
1. Куда деваются релоки?
То что это "косяк" KOL (по мне это "косяк", я три дня не мог понять почему у меня DLLки не подгружаются) - 100%.
2. Как это подправить?
← →
Игорь Шевченко © (2009-05-23 00:05) [1]
> Как оказалось во втором случае отсутствует секция релоков
> в DLLке, а она насколько я знаю для библиотеки довольно
> важна
Вообще-то не важна. Вообще-то если у тебя загружается куча DLL, можно заранее настроить их базовые адреса утилитой rebase от ms
← →
MTsv DN (2009-05-23 08:49) [2]> Вообще-то не важна.
Не хочу спорить. Навскидку, поиск в гугле "релоки в DLL", выдал:
http://qunpack.ahteam.org/?p=11
http://4pda.ru/forum/index.php?showtopic=66199&pid=1343802&mode=threaded&start=
и еще кучу всего, т.ч. не надо офтопить, а...вопрос был в другом. Куда девает релоки подключение файла KOL.PAS? Если по сути сказать нечего, то и не надо...
← →
MTsv DN (2009-05-23 08:51) [3]В первом, читать: "8. Восстановление таблицы настроек адресов (FixUp Table или Relocations)".
Во втором, читать Сообщение 2.
← →
D[u]fa (2009-05-23 11:59) [4]Релоки для длл очень важны. А разве если убрать КОЛ из списка, то релоки не пропадут так же?
по-моему баг компилятора это..
← →
D[u]fa (2009-05-23 12:04) [5]проверил.. все легко..
есть файл KOLDEF.INC в нём со 128 строки такой код:
// TODO: check DLL project - хорошая надпись))
{$IFNDEF NO_STRIP_RELOC}
// by Thaddy de Koning:
{$IFDEF _D2006orHigher}
// strips relocs, like stripreloc.exe does
{$SetPEFlags 1} - убрать релоки
{$ENDIF}
{$ENDIF}
← →
MTsv DN (2009-05-24 09:22) [6]2 D[u]fa
Да, уж, называется, попробуй отыщи... Спасибо...
← →
D[u]fa (2009-05-24 15:46) [7]Самое обидное, что способ (без извращений) узнать тип проекта(ехе или длл) я так и не нашел...
← →
MTsv DN (2009-05-26 23:50) [8]А какие извращения то? По первому некомментированному слову в DPR файле. А так, если в глубь файла не лезть, то по PE заголовку DLL от EXE вообще одним битом отличается...
← →
D[u]fa (2009-05-27 14:35) [9]дык и как это условной директивой пропишешь то? %)
← →
SPeller © (2009-05-28 10:52) [10]А я мучаюсь и не могу понять какого Хэ в д 2009 Build и Compile выдает разные бинарники дллки, причем по Build длл не грузится другой программой... А оно "вот оно чё михалыч!!!". Дома сегодня проверю.
← →
SPeller © (2009-05-31 07:32) [11]Да, дело было в этом. Закомментил и проблема ушла. Имхо, лучше такое по дефолту не включать. А то мало того, что по build и compile разное выходит, так еще и после внесения изменений и запуска на отладку по F9 происходит то же, что и по build - обрезанный бинарник и невозможность загрузить длл.
← →
D[u]fa (2009-05-31 11:28) [12]Видимо включено на авось было, в младших версиях делфи так вообще не заметно было
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2012.04.29;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.003 c