Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.28;
Скачать: CL | DM;

Вниз

Вопрос по компилятору   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.041 c
3-1162798932
svt
2006-11-06 10:42
2007.01.28
Подскажите пожайлусата. можно ли организовать поиск в текстовом


2-1168324543
Extar
2007-01-09 09:35
2007.01.28
Чтобы не изобретать велосипед...


1-1165072361
Керик
2006-12-02 18:12
2007.01.28
Корректно закрыть процесс


8-1149494028
hgd
2006-06-05 11:53
2007.01.28
Подскажите компонент


15-1168081075
kaZaNoVa
2007-01-06 13:57
2007.01.28
Покритикуйте программу, Self-loader