Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Указатель на функцию 
:(
    Опции темы
iglaweb
Дата 17.9.2009, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 13.8.2009

Репутация: нет
Всего: нет



Возникает ошибка:
Код

typedef DWORD(*func_t)(LPVOID);
func_t t = &Connect;

Функция Connect:
Код

DWORD WINAPI Connect(LPVOID lpParameter)
{
 //...
}

Как вызвать функцию потом, имея только указатель на нее?
PM MAIL ICQ   Вверх
zim22
Дата 17.9.2009, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(iglaweb @  17.9.2009,  19:37 Найти цитируемый пост)
Как вызвать функцию потом, имея только указатель на нее?

Код

t(аргумент);



--------------------
PM MAIL   Вверх
iglaweb
Дата 17.9.2009, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 13.8.2009

Репутация: нет
Всего: нет



А в строчке
Код

func_t t = &Connect;

что неправильно делаю?
PM MAIL ICQ   Вверх
zim22
Дата 17.9.2009, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(iglaweb @  17.9.2009,  19:45 Найти цитируемый пост)
что неправильно делаю?

ничего. всё правильно. а что ты хотел сделать этой строчкой? smile


--------------------
PM MAIL   Вверх
iglaweb
Дата 17.9.2009, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 13.8.2009

Репутация: нет
Всего: нет



Хотел создать указатель на функцию Connect. Неправильно?
PM MAIL ICQ   Вверх
zim22
Дата 17.9.2009, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(iglaweb @  17.9.2009,  19:53 Найти цитируемый пост)
Неправильно?

тип вызова нужно передать ещё было.
Код

typedef DWORD (WINAPI *func_t)(LPVOID);
func_t t = &Connect;




--------------------
PM MAIL   Вверх
iglaweb
Дата 17.9.2009, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 13.8.2009

Репутация: нет
Всего: нет



Ошибка почему-то вываливается, но не на этапе компиляции, а после. У меня проект на формах. Поэтому жму на кнопку и отладчик через этот код не проходит и ошибка(
PM MAIL ICQ   Вверх
Anikmar
Дата 17.9.2009, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Цитата(zim22 @  17.9.2009,  19:55 Найти цитируемый пост)
func_t t = &Connect;

А зачем там амперсенд?
PM MAIL ICQ   Вверх
TiKKi
Дата 18.9.2009, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 13.5.2006

Репутация: нет
Всего: 2



Цитата(Anikmar @ 18.9.2009,  04:32)
Цитата(zim22 @  17.9.2009,  19:55 Найти цитируемый пост)
func_t t = &Connect;

А зачем там амперсенд?

Как с ним (амперсандом), так и без него - правильно.
PM   Вверх
zim22
Дата 18.9.2009, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(Anikmar @  17.9.2009,  21:32 Найти цитируемый пост)
А зачем там амперсенд?

чтобы явно(человеку) увидеть, что берётся адрес функции.


--------------------
PM MAIL   Вверх
Anikmar
Дата 18.9.2009, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Цитата(zim22 @  18.9.2009,  09:31 Найти цитируемый пост)
чтобы явно(человеку) увидеть, что берётся адрес функции. 

Ясно.
Никогда просто не использовал и у меня закралось сомнение - а вдруг тут какой-то особый фокус. Обычно всякие тонкости синтаксиса замечаешь когда что-то не работает. А когда работает - как-то и не обращаешь внимание. Как засело в голове, что функции и массивы амперсенда не требуют, вот и удивился увидев. 
PM MAIL ICQ   Вверх
bsa
Дата 18.9.2009, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



iglaweb, код функции, где это происходит, в студию.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0569 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.