C++Builder
Начало
Форум
Помощь
Войти
Регистрация
C++Builder
>
Forum
>
Вопросы программирования
>
Windows API
>
Создание процесса(Нитки) в отдельном классе
Страниц: [
1
]
Вниз
Печать
Автор
Тема: Создание процесса(Нитки) в отдельном классе (Прочитано 6753 раз)
DEGroup
Участник
Сказали спасибо: +0/-0
Offline
Сообщений: 4
Создание процесса(Нитки) в отдельном классе
«
:
18 апреля 2012, 22:26:14 »
Ситуация такая:
Есть обычная WIN программка
в Form1 имеем код
Код C++
#include <vcl.h>
...
HANDLE hMainNetThread = NULL;
DWORD dwNetThreadId;
DWORD WINAPI MainNetThread(LPVOID lpParam);
...
//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender)
{
....
hMainNetThread = CreateThread(NULL,0,MainNetThread,0,0,&dwNetThreadId);
....
}
....
DWORD WINAPI MainNetThread(LPVOID lpParam)
{
while(1)
{
...
}
}
}
Все пашет.
Теперь другая программка (с использованием своего класса)
Код C++
#include <vcl.h>
...
class MyClass
{
HANDLE hMainNetThread = NULL;
DWORD dwNetThreadId;
__fastcall MyClass(int Number)
{
.....
hMainNetThread = CreateThread(NULL,0,MainNetThread,0,0,&dwNetThreadId);
Вот тут ошибка компилятора
(E2034 Cannot convert 'unsigned long (__stdcall * (_closure )(void *))(void *)' to 'void *')
}
....
DWORD WINAPI ThreadFunction(LPVOID lpParam)
{
return 0;
}
}
MyClass *ClassMy[MaxChannelCount];
....
void __fastcall TForm1::FormShow(TObject *Sender)
{
for(int i= 0; i<MaxChannelCount; i++)
{
ClassMy
= new MyClass(i);
}
}
что не так то? Как обойти ошибку?
Записан
volvo877
Глобальный модератор
Сказали спасибо: +736/-1
Offline
Сообщений: 891
Re: Создание процесса(Нитки) в отдельном классе
«
Ответ #1 :
18 апреля 2012, 23:29:55 »
Функция потока не может быть членом класса, у нее есть строго определенная
сигнатура
. Либо выноси ее за пределы класса, либо делай статической
Код
static
DWORD WINAPI ThreadFunction
(
LPVOID lpParam
)
{
// ...
}
, неявный параметр this мешает компилятору.
Записан
DEGroup
Участник
Сказали спасибо: +0/-0
Offline
Сообщений: 4
Re: Создание процесса(Нитки) в отдельном классе
«
Ответ #2 :
19 апреля 2012, 09:02:19 »
да разобрался, просто время познее было, заработался
, вот голова и не варит, сам себя материл за тормознутость. Все равно спасибо!
Записан
Страниц: [
1
]
Вверх
Печать
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Вопросы программирования
-----------------------------
=> Общие вопросы программирования в C++Builder
=> Программирование с FMX
=> Работа с базами данных в C++Builder
=> Windows API
=> Технологии COM/DCOM, ActiveX
=> Аспекты и идеология профессиональной разработки ПО
=> Компьютерное железо и системное администрирование
=> студенческий городок
-----------------------------
Обсуждение материалов на сайте
-----------------------------
=> Обсуждений статей на сайте
=> Обсуждение материалов из файлового архива
=> Компоненты сторонних разработчиков к С++Builder
-----------------------------
Работа сайта и новости
-----------------------------
=> Ищу/предлагаю работу
=> Новости из мира программирования
=> Новости - события календаря
=> Голосования
=> Компьютерный юмор и приколы
=> Работа сайта
=> Флейм
-----------------------------
FAQ - частозадаваемые вопросы/ответы
-----------------------------
=> FAQ, общие вопросы, посвящённые C++Builder
=> FAQ, вопросы по базам данных
=> FAQ, вопросы по компонентам