Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Эксперт Pascal/Delphi
 Аватар для mmm_corp
103 / 91 / 32
Регистрация: 30.05.2015
Сообщений: 594

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

05.10.2015, 19:01. Показов 1836. Ответов 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)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.10.2015, 19:01
Ответы с готовыми решениями:

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

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

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

5
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
05.10.2015, 19:30
C
1
2
3
4
5
6
7
typedef void (WINAPI *GLEND)(void);
 
GLEND   glmethod    = (GLEND)   GetProcAddress(hModule, "glEnd");
 
void  glEnd (void){
    glmethod();
}
1
Эксперт Pascal/Delphi
 Аватар для mmm_corp
103 / 91 / 32
Регистрация: 30.05.2015
Сообщений: 594
05.10.2015, 19:45  [ТС]
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
05.10.2015, 19:57
1.
вы объявили локальную переменную glmethod внутри функции dlgInit.
разумеется она не видна другим функциям.

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

Решение

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

Цитата Сообщение от hoggy Посмотреть сообщение
2.префикс g перед именем переменной обозначает глобальную переменную.
рекомендую вам убрать этот префикс, переименовав переменные.
дабы не сбивать людей с толку.
портирую gl.c на вызов динамически с статического вызовов, там пишут так. Пытаюсь полностью сохранить совместимость чтобы можно было быстро внедрять свою либу в существующие проекты.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.10.2015, 17:36
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru