DLL в С++

  Вход на форум   логин       пароль   Забыли пароль? Регистрация
On-line:  

Раздел: 
Форум движка Xtreme3D / Свободный треп / DLL в С++

Страницы: 1  новая тема

Автор Сообщение

частый гость
Группа: Участники
Сообщений: 10
Добавлено: 20-03-2018 04:53
Вопросик. пишу DLL на С++ для gm, как известно gm поддерживает double,ch ar, но возникла такая проблема, в GLUT есть функция которая принимает в виде аргумента функцию типа void, пробовал перевести функцию в void, но не помогает, VS ругается.

Пример кода:
glutDisplayFunc((void)RenderScene); // функция которая принимает в виде аргумента void функцию. На эту строчку кода VS и ругается,что не может изменить в тип void.

//сама функция RenderScene
double RenderScene()
{
//Код
return 0.0;
}

частый гость
Группа: Участники
Сообщений: 17
Добавлено: 20-03-2018 12:24
Нужно передать указатель на эту функцию. Будет что-то вроде:

glutDisplayFunc(&RenderScene);

Учти, что при этом функция либо должна быть типа void, либо ее указатель надо привести к void, просто передавать указатель на функцию типа отличного от того, что принимает метод не получится:

(void*)renderPointer = static_cast<(void*)>(&RenderScene);

Точнее не скажу - редко использую, поэтому не помню точно, но должно быть что-то вроде такого. Поподробнее можно прочитать погуглив "C++ function pointer" и "C++ function pointer casting".

Страницы: 1  новая тема
Раздел: 
Форум движка Xtreme3D / Свободный треп / DLL в С++

Отвечать на темы могут только зарегистрированные пользователи

KXK.RU