Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получение хэндла потока [D7, XP]


Andjey ©   (2009-12-02 15:02:00) 

Выполняя тестовый пример с потоками каждый раз получаю предупреждение в этой строке:

 fMonDirMain.Tag := Integer(TMonDirThread.Create('d:\Temp'));

предупреждение:
[Warning] ufMain.pas(61): Unsafe typecast of 'TMonDirThread' to 'Integer'
Я конечно знаю, что этого можно избежать, отключив в опциях проекта Compiler Messages - Unsafe typecast. Но это я визуальное предупреждение отключу. А мне интересно понять почему оно появляется, если при создании потока он выдает дескриптор, назначенный ОС типа Integer, вроде все правильно. В момент приведения, что-ли?


Anatoly Podgoretsky   (2009-12-02 16:42:00) [1]


> Т.е. их(там их всего 3, на эту тему) безболезненно можно
> отключить и не заморачиваться?

Только приведение не ограничивается этим типом.


Andjey   (2009-12-02 16:34:00) [2]

Все понятно, спасибо.


Игорь Шевченко   (2009-12-02 16:10:00) [3]

Andjey   (02.12.09 15:45) [7]

Каждый для себя сам решает


Andjey   (2009-12-02 15:45:00) [4]


> Игорь Шевченко ©   (02.12.09 15:41) [6]

Т.е. их(там их всего 3, на эту тему) безболезненно можно отключить и не заморачиваться?


Игорь Шевченко   (2009-12-02 15:41:00) [5]

такое преобразование несовместимо с .Net, поэтому и выдается предупреждение. В D2006, например, эти предупреждения по умолчанию отключены, а в 7 они только появились, ну и ура, давайте считать, что все переходят на .Net и выдавать их.


Andjey   (2009-12-02 15:33:00) [6]


> Anatoly Podgoretsky ©   (02.12.09 15:11) [2]
> А указатель имеет диапахон от 0 до $FFFFFFFF, что много
> больше Integer и кроме того беззнаковое.

А что вы этим хотели сказать? Что данное приведение к Integer может не захватить тиапазан , который ему доступен? Поэтому просто предупреждение?


Andjey   (2009-12-02 15:16:00) [7]


> Rouse_ ©   (02.12.09 15:07) [1]
> Этим кодом ты получаешь не описатель потока а указатель
> на экземпляр класса TMonDirThread


Я и имел ввиду указатель, извените...


kyn66   (2009-12-02 15:14:00) [8]

Да, но любой указатель мы всегда можем привести(что здесь и делаем) к типу Integer...


Anatoly Podgoretsky   (2009-12-02 15:11:00) [9]

А указатель имеет диапахон от 0 до $FFFFFFFF, что много больше Integer и кроме того беззнаковое.


Rouse_   (2009-12-02 15:07:00) [10]

Этим кодом ты получаешь не описатель потока а указатель на экземпляр класса TMonDirThread


Наверх

Титульная страница Поиск, карта сайта Написать письмо