Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.04 c
2-1168424847
RomanH
2007-01-10 13:27
2007.01.28
Заголовок DBGrid а


15-1168278548
Sergey Masloff
2007-01-08 20:49
2007.01.28
Книжки которые можно читать


2-1168103202
CoolLamer
2007-01-06 20:06
2007.01.28
А как передать данные из ОДНОЙ процедуры в ДРУГУЮ?


9-1141978768
Ricks
2006-03-10 11:19
2007.01.28
Игра типа Worms


15-1168481935
Смаг
2007-01-11 05:18
2007.01.28
опере 9





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский