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

Вниз

Инициализация глобальных переменных   Найти похожие ветки 

 
Alex_C   (2010-03-28 12:09) [0]

Я всегда считал, что в дельфи глобальные переменные по умолчанию инициализируются как nil. Что в общем так оно и есть.
Однако сталкнулся с такой проблемой: если запускать мою программу под Линуксом в Wine это не так.
Есть некоторый класс TMyClass - наследник от TThread. Это отдельная нить работы с интернетом. Запускается пользователем по нажатию на кнопку. Перед нажатием я проверяю, не инициализированна ли переменная MyClass:
if not Assigned(MyClass)...
так вот - под виндой все нормально работает, а под Wine при первой же проверке Assigned говорит что переменная уже инициализирована. Выход из положения конечно простой, самому инициализировать переменную


var
  MyClass: TMyClass = nil;


но я считал что Дельфи это по умолчанию сама делает. Или я ошибаюсь?


 
Игорь Шевченко ©   (2010-03-28 14:04) [1]

"Global variables that don"t have an explicit initializer are allocated in the BSS section in the executable. They don"t actually take up any space in the EXE; the BSS section is a special section that the OS allocates and clears to zero. "

Загрузчик в Wine вполне может не обнулять содержимое сегмента BSS


 
Alex_C   (2010-03-30 09:50) [2]

Большое спасибо! Теперь все стало ясно!


 
KSergey ©   (2010-03-31 11:52) [3]

казалось бы, такое мелкое различие...



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.05 c
2-1271248525
De:Light
2010-04-14 16:35
2010.08.27
Загрузка и анализ


15-1267230629
Юрий
2010-02-27 03:30
2010.08.27
С днем рождения ! 27 февраля 2010 суббота


6-1216982606
Uzer32.dll
2008-07-25 14:43
2010.08.27
Доступ к запароленым шарам


15-1263549006
Kolan
2010-01-15 12:50
2010.08.27
Кто-нибудь компилировал tpapro407 под 2009 или 2010 Делфи?


2-1268752361
Lionelles
2010-03-16 18:12
2010.08.27
Вычисления в БД на Delphi