Главная страница
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.036 c
15-1168252422
cando
2007-01-08 13:33
2007.01.28
обнаружение врага


11-1144662651
Godness
2006-04-10 13:50
2007.01.28
Почему не меняется стиль формы?


2-1168550672
Beavercrazy
2007-01-12 00:24
2007.01.28
Проблема при работе с Аксесовской таблицей


15-1168250469
Виктор111
2007-01-08 13:01
2007.01.28
Нейронные сети


1-1164894605
salexn
2006-11-30 16:50
2007.01.28
Как определить установлена ли нужная версия MSXML?