Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Ошибка при получении адреса функции Server из класса.

6.6K
05 февраля 2007 года
Scaiman
126 / / 25.07.2006
Помогите никак немагу разобраться.
Код:
class Server
{
private:
    HANDLE hThreadInput;
    DWORD dwCountInput,dwThreadIdInput;
public:
    void GetInput();
    void Create();
};

Void Server::Create()
{
hThreadInput = CreateThread(NULL,0,[COLOR="Blue"]GetInput[/COLOR],&dwCountInput,0,&dwThreadIdInput);
}
void Void Server::GetInput()
{

}
Как указать в CreateThread ссылку на GetInput всё что знал перепробовал, пол дня немагу разобраться.:confused:
3
05 февраля 2007 года
Green
4.8K / / 20.01.2000
метод должен быть статическим, информацию об экземпляре можно передать через соотв. параметр в CreateThread.
6.6K
05 февраля 2007 года
Scaiman
126 / / 25.07.2006
А поточнее пожалуйста объесни, ато чо то неуловил суть. Заранее спасибо.
3
05 февраля 2007 года
Green
4.8K / / 20.01.2000
Сделай поиск по форуму ключевой фразой "статический метод", всё станет яснее. Чтоб уменьшить кол-во результатов поиска, можешь задать в расширенном поиске пользователя Green.
309
06 февраля 2007 года
el scorpio
1.1K / / 19.09.2006
[quote=Green]метод должен быть статическим[/quote]
Кому должен? ;)

Нужно объявить указатель не на функцию, а на метод данного класса.
Код:
class Server; // Предварительное объявление класса
typedef void __fastcall (*Server::fPointer)(void); // Объявление типа указателя

class Server
{
// Реализация класса
};
///.....

{
fPointer ptr = &Server::GetInput;
// Используем ptr;
}


Кстати, поместить в данный указатель адрес виртуального метода, то этот указатель также будет виртуализовываться.
3
06 февраля 2007 года
Green
4.8K / / 20.01.2000
Если ты обратишь внимание на контекст, в котором автор задает вопрос, а именно создание треда (CreateThread), то использование указателя на метод класса тут не подходит. Метод должен быть статическим.
6.6K
06 февраля 2007 года
Scaiman
126 / / 25.07.2006
Нашол пару статей правда не по этому форуму, там так намудрено ничего непинятно. Вот так эти __thiscall =(.
6.6K
06 февраля 2007 года
Scaiman
126 / / 25.07.2006
Может быть и лентяй :) но я правда искал и на форуме и по инету и в google нашол пару статей но там сложновато учесть то что я занимаюсь C++ с пол года, спасибо за ссылки.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог