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

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

05.10.2015, 19:01. Просмотров 278. Ответов 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 (WINAPI *GLEND)(void), как вызывать? (C++):

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

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

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

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

Void menu(void); что это ? почему не void menu();
void menu(void); что это ? почему не void menu(); void naprimer(void); и это...

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

5
hoggy
Заблокирован
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
Сообщений: 486
05.10.2015, 19:45  [ТС] #3
Typedef void (WINAPI *GLEND)(void), как вызывать?
0
hoggy
Заблокирован
05.10.2015, 19:57 #4
1.
вы объявили локальную переменную glmethod внутри функции dlgInit.
разумеется она не видна другим функциям.

2.
префикс g перед именем переменной обозначает глобальную переменную.
рекомендую вам убрать этот префикс, переименовав переменные.
дабы не сбивать людей с толку.
2
UltraPenguin
229 / 95 / 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
Сообщений: 486
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(*f)()=(void(*)()func?
void(*f)()=(void(*)())func; Объясните, пожалуйста, что значит этот код.

delete или new (typeid(void*))(void*)
Доброе время суток. Пишу список. Телом каждого элемента (el) списка является...

Error C2084: функция "void mehanizm:print(void)" уже имеет текст реализации
Добрый день, я столкнулся с проблемой вывода элемента на экран, выбивает:...


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

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

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