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

Вниз

Передать THandle как Cardinal   Найти похожие ветки 

 
Призрак ©   (2006-06-14 08:45) [0]

Надо в поток (сделанный через CreateThread) в качестве параметра передать THandle, а компилер говорит - Cardinal ему подавай :( как ему угодить?


 
Сергей М. ©   (2006-06-14 08:49) [1]


> как ему угодить?


Cardinal(MyHandle)


> сделанный через CreateThread


По ряду важных причин вместо CreateThread настоятельно рекомендуется использовать BeginThread.


 
Призрак ©   (2006-06-14 08:55) [2]


> Cardinal(MyHandle)

Написал. То же самое говорит! Как будто там просто MyHandle написано... :(((


> По ряду важных причин вместо CreateThread настоятельно рекомендуется
> использовать BeginThread.

Спасибо... я как раз обратил внимание на жто место в Рихтере и задумался, как эта функция называется в делфи :) просто некоторые умники при мне использовали CreateThread и метали понты, и я подумал что наверное нет никакой функции...


 
Призрак ©   (2006-06-14 09:04) [3]

блин... дошло.

Incompatible types: Cardinal and Pointer

Я думал, он имеет в виду что хочет Cardinal, а я ему даю Pointer... оказалось наоборот - он в качестве параметра хочет Pointer, а THandle - это Cardinal :))) Написал Pointer (Myhandle) - заработало. :)

и оффтоп - а посмотрел на BeginThread, понял что к Рихтеру она видимо отношения не имеет, но всё равно лучше использовать её. Спасибо...


 
Сергей М. ©   (2006-06-14 09:05) [4]

А где ты вообще увидел Cardinal в декларации этой ф-ции ?

function CreateThread(lpThreadAttributes: Pointer;
 dwStackSize: DWORD; lpStartAddress: TFNThreadStartRoutine;
 lpParameter: Pointer; dwCreationFlags: DWORD; var lpThreadId: DWORD): THandle; stdcall;

Кпак видишь, тип параметра Pointer, а не Cardinal ..


> некоторые умники при мне использовали CreateThread и метали
> понты


В принципе нет ничего катастрофического в использовании именно CreateThread. Но в этом случае придется принимать самостоятельные меры по обеспечению безопасного использования менеджера памяти в мультипоточной среде исполнения, а также самому организовывать верхнеуровневую обработку потенциальных исключений.


 
Сергей М. ©   (2006-06-14 09:06) [5]


> к Рихтеру она видимо отношения не имеет


Конечно не имеет)... Как и Рихтер к Делфи)



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

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

Наверх




Память: 0.48 MB
Время: 0.041 c
2-1150175682
TheBug
2006-06-13 09:14
2006.07.02
Строки и коллекции


6-1140525744
AlexEgorov
2006-02-21 15:42
2006.07.02
Почему не получается получить адрес хоста для TCP/IP порта


2-1149847414
Balkon
2006-06-09 14:03
2006.07.02
Причина ошибки Access Violation


15-1149272356
homm
2006-06-02 22:19
2006.07.02
Кто виноват? Что делать?


15-1149410130
leonidus
2006-06-04 12:35
2006.07.02
В какую ветку реестра лучше писать настройки программы?