Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Synchronize в C++ Builder 2006
Форум программистов > Системное программирование > C, С++ и С Builder > Borland C++ Builder & Kylix
Parabellum762
есть программа, на C++Builder 6 работает как часы. Перевожу её на 2006 - нужно кардинально поменять интерфейс.
Всё отлично, но в новой версии борланд поменял синтаксис (или не только синтаксис? blink.gif ) 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.
Что за класс, с чем его жевать - разбираться абсолютно неохота... может, кто уже это делал, и у него есть готовый пример?...
Parabellum762
Всё Ок, победил я эту ерунду.

нужно было только написать Synchronize(TThreadMethod)&Function1);
kot_
Цитата(Parabellum762 @ 8:08:2006, 06:36 ) *
Всё Ок, победил я эту ерунду.

нужно было только написать Synchronize(TThreadMethod)&Function1);

Говорят, явное приведение типов указателей - это хороший стиль программирования. Не знаю как на счет стиля - но огромное количество проблем отпадает сразу.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.