Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.08.2011, 18:55   #1
vsrmis
Пользователь
 
Регистрация: 09.12.2010
Сообщений: 26
По умолчанию BeginThread

создат такую функцию

function ThreadProc(param : Pointer) : LongInt;register;

begin


в варе обьявил переменную
eventThread : THandle = 0;
На Creatу делаю так

var
id:QWord;
begin
eventThread := BeginThread(nil, 0, @ThreadProc, nil, 0, id);
end;

компилятор ругается на несовместимость типов

Типа я ему сообщил адрес функуии а он ожидал procedure varieble type of function
vsrmis вне форума Ответить с цитированием
Старый 01.08.2011, 18:59   #2
vsrmis
Пользователь
 
Регистрация: 09.12.2010
Сообщений: 26
По умолчанию

Изменил LongInt на Int64. Скомпилилось но выкидывает при
eventThread := BeginThread(nil, 0, @ThreadProc, nil, 0, id);

Незнаю, что-то как не бьюсь ни один способ потоков не работает ещё ни 1 поток запуститьне удалось, может это система или проц виноваты? Не думаю Система - Linux Mint 10, проц - i5 2400. Вроде 4 ядерный потоки должны пахать.
vsrmis вне форума Ответить с цитированием
Старый 01.08.2011, 20:41   #3
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
function ThreadProc(param : Pointer) : LongInt;register;
Какой еще нфих "register" ? Что за отсебячина ?
Удосужься уже проштудировать внимательно документацию, прежде чем "шкодить"
mss вне форума Ответить с цитированием
Старый 02.08.2011, 12:26   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

не стоит привязываться к разрядности target, вот код, который прекрасно компилится (да ещё и работает) и 32 и 64 разрядным FPC:

Код:
// --  --
function fpc_thread(parameter: pointer): ptrint;
begin
  // thread code
end;

///

handle := BeginThread(@fpc_thread, param);
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
beginthread, ошибка при вызове Dreanks Помощь студентам 2 28.10.2010 14:09
Переделка с TThread на Beginthread bulldog5293 Общие вопросы Delphi 2 23.09.2010 17:24