Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
mmm_corp
74 / 69 / 22
Регистрация: 30.05.2015
Сообщений: 487
1

Typedef void (WINAPI *GLEND)(void), как вызывать?

05.10.2015, 19:01. Просмотров 899. Ответов 5
Метки нет (Все метки)

импортирую метод
C++
1
GLEND   glmethod    = (GLEND)   GetProcAddress(hModule, "glEnd");
как его теперь коректно вызвать:

C++
1
2
3
4
typedef void (WINAPI *GLEND)(void);
void  glEnd (void){
    (GLEND); // здесь непонятно как написать
}
П.С. чистый С
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2015, 19:01
Ответы с готовыми решениями:

Typedef void F(); typedef для типа функции через идентификатор
Здравствуйте цитата из typedef MSDN в интернете мне удалось нарыть только один конкретный...

Нюансы синтаксиса: что означает запись typedef void(*PF) (); ?
Что означает эта команда typedef void(*PF) (); ?

Ошибка при компиляции Dev C++ 'typedef void* pthread_t'
Здравствуйте. Нужно установить программу D-ITG через Dev C++. Установил версию 5.10, открываю...

Ошибка cannot convert from type void*(classname::) () to type void*(*)(void*)
Подскажите пожалуйста как избавиться от ошибки? Есть ещё какой-либо способ, кроме как объявить...

Void menu(void); что это ? почему не void menu();
void menu(void); что это ? почему не void menu(); void naprimer(void); и это идет в классе это...

5
hoggy
Нарушитель
Эксперт С++
7087 / 3130 / 648
Регистрация: 15.11.2014
Сообщений: 7,209
Завершенные тесты: 1
05.10.2015, 19:30 2
C
1
2
3
4
5
6
7
typedef void (WINAPI *GLEND)(void);
 
GLEND   glmethod    = (GLEND)   GetProcAddress(hModule, "glEnd");
 
void  glEnd (void){
    glmethod();
}
1
mmm_corp
74 / 69 / 22
Регистрация: 30.05.2015
Сообщений: 487
05.10.2015, 19:45  [ТС] 3
Typedef void (WINAPI *GLEND)(void), как вызывать?
0
hoggy
Нарушитель
Эксперт С++
7087 / 3130 / 648
Регистрация: 15.11.2014
Сообщений: 7,209
Завершенные тесты: 1
05.10.2015, 19:57 4
1.
вы объявили локальную переменную glmethod внутри функции dlgInit.
разумеется она не видна другим функциям.

2.
префикс g перед именем переменной обозначает глобальную переменную.
рекомендую вам убрать этот префикс, переименовав переменные.
дабы не сбивать людей с толку.
2
UltraPenguin
230 / 96 / 27
Регистрация: 20.03.2014
Сообщений: 304
Завершенные тесты: 1
05.10.2015, 19:58 5
Лучший ответ Сообщение было отмечено mmm_corp как решение

Решение

mmm_corp, разумеется он неопределен. У вас же он определяется внутри dglInit(). Вынесите GLEND glmethod в глобальную область видимости либо делайте
C++
1
GLEND   glmethod    = (GLEND)   GetProcAddress(hModule, "glEnd");
внутри glEnd().
А по хорошему это все бы в класс обернуть.
1
mmm_corp
74 / 69 / 22
Регистрация: 30.05.2015
Сообщений: 487
06.10.2015, 17:36  [ТС] 6
Цитата Сообщение от hoggy Посмотреть сообщение
1.
вы объявили локальную переменную glmethod внутри функции dlgInit.
разумеется она не видна другим функциям.
ок.... как же тогда написать по канонам, можно пример?

Цитата Сообщение от hoggy Посмотреть сообщение
2.префикс g перед именем переменной обозначает глобальную переменную.
рекомендую вам убрать этот префикс, переименовав переменные.
дабы не сбивать людей с толку.
портирую gl.c на вызов динамически с статического вызовов, там пишут так. Пытаюсь полностью сохранить совместимость чтобы можно было быстро внедрять свою либу в существующие проекты.
0
06.10.2015, 17:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2015, 17:36

Дважды вычислить значение выражения, используя функции возвращающие void и не void
Хай!Помогите решить Дважды вычислить значение выражения, используя функции возвращающие void...

Написать функцию раньше мейна, через void. потом в мейне её вызывать
Помогите. Нужно написать функцию раньше мейна, через void. потом в мейне её вызывать #include...

Что значит void(*f)()=(void(*)()func?
void(*f)()=(void(*)())func; Объясните, пожалуйста, что значит этот код.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru