Synchronize в C++ Builder 2006

  • Автор темы Автор темы Parabellum762
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
P

Parabellum762

есть программа, на C++Builder 6 работает как часы. Перевожу её на 2006 - нужно кардинально поменять интерфейс.
Всё отлично, но в новой версии борланд поменял синтаксис (или не только синтаксис? :) ) Synchronize вызовов.
У меня раньше было написано так:

main.cpp:
int TMainForm::Function1(int arg)
{
// что-то делается
}
void TMainForm::MainForm()
{
CommPort->Function1 = Function1;
}

commport.cpp
void __fastcall TCommThread::Execute()
{
Synchronize(FuncCall1);

}
void TCommThread::FuncCall1(void)
{
if(Function1)
Function1(Var1);
}

commport.h
int (__closure *Function1)(int Arg);
int Var1;

Загрузил проект в 2006 - при компилировании выскаивает ошибка (на строку Synchronize(FuncCall1); )

Could mot find a match for 'TThread::Synchronize(void)'

Читал хелп, там сказано что в синхронизу надо передавать аргументом класс TThreadMethod.
Что за класс, с чем его жевать - разбираться абсолютно неохота... может, кто уже это делал, и у него есть готовый пример?...
 
Всё Ок, победил я эту ерунду.

нужно было только написать Synchronize(TThreadMethod)&Function1);
 
Всё Ок, победил я эту ерунду.

нужно было только написать Synchronize(TThreadMethod)&Function1);
Говорят, явное приведение типов указателей - это хороший стиль программирования. Не знаю как на счет стиля - но огромное количество проблем отпадает сразу.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab