Форум: "Прочее";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];
ВнизВопрос по компилятору Найти похожие ветки
← →
Layner © (2007-01-04 16:36) [0]Есть 2 функции в отдельном модуле:
function TInfo.GetUserLogin: string;
begin
Result:="UserLogin"; //:)
end;
function TInfo.GetUserSID: string;
begin
Result:="UserSID"; //:)
end;
Из основной программы вызываю только GetUserLogin, GetUserSID - нигде не вызывается, можно сказать не используется. Вопрос, компилируется ли GetUserSID в основную программу? Или игнорируется? Я думаю второе, но тут сомнения возникли, решил спросить :) Заранее спасибо и всех с Новым годом!
← →
Desdechado © (2007-01-04 16:42) [1]Это не функции, а методы класса.
Если класс используется, то компилируется все, AFAIR.
← →
Игорь Шевченко © (2007-01-04 16:44) [2]
> но тут сомнения возникли
Сомнения разрешаются выводом map у линкера
← →
Layner © (2007-01-04 16:45) [3]Да, компилируется то все, я не правильно выразился, но если 2я функция вообще не используется, а в ней предположим 10000 строк, плюс констант текстовых на несколько десятков килобайт (мало ли кого приспичит :) ), то не ужели это все войдет в основную программу каким нибудь макаром?
← →
kaZaNoVa © (2007-01-04 16:46) [4]Layner © (04.01.07 16:36)
Вопрос, компилируется ли GetUserSID в основную программу?
HEX-едитором или любой прогой глянь есть ли строка "UserSID" в ехе
← →
Layner © (2007-01-04 16:47) [5]
Игорь Шевченко © (04.01.07 16:44)
Игорь, спасибо, воспользуюсь, посмотрю...
← →
kaZaNoVa © (2007-01-04 16:49) [6]Layner © (04.01.07 16:45) [3]
удаляй)) например через{$ifdef asm_ver}
{$else}
{$endif}
← →
Layner © (2007-01-04 16:50) [7]
[6] kaZaNoVa © (04.01.07 16:49)
Ok
← →
vidiv © (2007-01-04 16:53) [8]Нажми Ctrl+F9... Если компилируется, то слева от кода будут синенькие кружочки, а если нет - то не будет =)
ЗЫ... Слово "компилируется", наверное, тут не совсем правильно указано, но смысл понятен, думаю=)
← →
kaZaNoVa © (2007-01-04 16:56) [9]vidiv © (04.01.07 16:53) [8]
слева от кода будут синенькие кружочки, а если нет - то не будет =)
а что за кружочки и когда они бывают?
← →
vidiv © (2007-01-04 17:05) [10]ну вообще, я думаю, показывают куда можно вставить breakpoint =)
← →
Vga © (2007-01-04 21:04) [11]> [10] vidiv © (04.01.07 17:05)
Они показывают строки, которые скомпилированы и слинкованы в результирующий код.
← →
Юрий Зотов © (2007-01-05 00:55) [12]> Layner © (04.01.07 16:36)
Если программа скомпилирована с run-time пакетами, а этот модуль входит в один из таких пакетов, то компилируется и попадает в BPL:
- все, что объявлено в секции interface;
- и все, что нужно для поддержки этого.
Иначе компилируется и попадает в EXE только то, что реально вызывается хоть раз.
← →
vidiv © (2007-01-05 11:12) [13]
> Vga © (04.01.07 21:04) [11]
> > [10] vidiv © (04.01.07 17:05)
>
> Они показывают строки, которые скомпилированы и слинкованы
> в результирующий код.
откуда такая инфа?
← →
_uw_ (2007-01-05 14:00) [14]Иначе компилируется и попадает в EXE только то, что реально вызывается хоть раз.
В связи вот с таким фрагментом кода:type
TProc = procedure(x: Integer);
procedure test(x: Integer);
begin
end;
procedure TForm1.FormCreate(Sender: TObject);
var
Proc: TProc;
begin
Proc := test;
...
end;
я бы сказал что-то типа "ссылки". Правда, все зависит от опции оптимизации: если она установлена, то в EXE не будут включены ни процедура test, ни присваивание переменной Proc. Опять же возможны варианты: если добавить строку X := Integer(@Proc); то процедура test вновь будет включена в EXE.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.043 c