Главная страница
    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.042 c
2-1168325787
DelphiLexx
2007-01-09 09:56
2007.01.28
Быстрое заполнение дин. массива


15-1168381360
Bogdan1024
2007-01-10 01:22
2007.01.28
Генерирование документов


2-1168701299
.1.
2007-01-13 18:14
2007.01.28
Разбор строки.


15-1168538869
Kerk
2007-01-11 21:07
2007.01.28
Как бы выглядел Google, если б он был Yahoo


6-1151302066
WhiteBarin
2006-06-26 10:07
2007.01.28
Программа-Дозвонщик





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский