HLFX.Ru Forum Страницы (2): [1] 2 »
Показать все 19 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Указатель на функцию (https://hlfx.ru/forum/showthread.php?threadid=2104)


Отправлено fire64 25-02-2010 в 09:41:

Указатель на функцию

как передать указатель на функцию ?

У меня есть код


C++ Source Code:
1
lua_State *LuaStat;
2
char *funcname
3
func - указатель на функцию.
4
 
5
lua_register(LuaStat,funcname, func);


я сделал так

C++ Source Code:
1
void CLUAManager :: LuaRegister( char *funcname, void *func )
2
{
3
  lua_register(LuaStat,funcname, func);
4
}


но void *func не подходит для этого

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Government-Man 25-02-2010 в 10:41:

<тип-возвращаемого-значения> (*<имя-указателя> )( <аргументы> )

например

int (*func)( int, int )

Добавлено 25-02-2010 в 15:39:

Можно еще:

typedef int (*MyCoolFuncPointerType_t)( int, int );
void blah( MyCoolFuncPointerType_t zzz )
{
...
}

Добавлено 25-02-2010 в 15:41:

можно грабить корованы вызывать переданную ф-ию:
zzz( 5, 6 );


Отправлено Дядя Миша 25-02-2010 в 11:30:

от себя добавлю, что в имени указателя на функцию неплохо писать pfn в начале - признак хорошего тона.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено fire64 25-02-2010 в 11:41:

сделал так

typedef int (lua_func) (lua_State *L);

и

void LuaRegister( char *funcname, lua_func *originfunc );

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено XaeroX 25-02-2010 в 11:52:

fire64
Что ты фигнёй страдаешь? Возьми luabind и радуйся.

__________________

xaerox on Vivino


Отправлено fire64 25-02-2010 в 12:28:

Цитата:
XaeroX писал:
fire64
Что ты фигнёй страдаешь? Возьми luabind и радуйся.


Я уже взял LuaBuild5 и написал класс для работы с Lua скриптами.

п.с.
luabind не компилится шестой студией.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено XaeroX 25-02-2010 в 12:43:

Цитата:
fire64 писал:
luabind не компилится шестой студией.

Вот только не надо, пожалуйста, собственное лузерство распространять на целую библиотеку.

__________________

xaerox on Vivino


Отправлено fire64 25-02-2010 в 12:46:

XaeroX, Luabind официально не поддерживает VC6

во всяком случае так было года 2 назад.

или я ставил, что-то другое.

сейчас гляну старый код и скажу.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено XaeroX 25-02-2010 в 12:53:

fire64
Вот цитата из официальных доков:

Цитата:
Luabind has been tested to work on the following compilers:

Visual Studio 7.1
Visual Studio 7.0
Visual Studio 6.0 (sp 5)
Intel C++ 6.0 (Windows)
GCC 2.95.3 (cygwin)
GCC 3.0.4 (Debian/Linux)
GCC 3.1 (SunOS 5.8)
GCC 3.2 (cygwin)
GCC 3.3.1 (cygwin)
GCC 3.3 (Apple, MacOS X)
GCC 4.0 (Apple, MacOS X)


Если даже современные версии и не поддерживают, никто не мешает взять старую. Брать последнюю версию луабинда, но при этом компилить сорцы шестой студией - это просто маразм.

Добавлено 25-02-2010 в 18:53:

Последняя версия луабинда на момент, когда я начал его прикручивать в халфу, была за ноябрь 2006. Работает она превосходно, с багами не сталкивался, поэтому новые версии качать смысла не вижу.

__________________

xaerox on Vivino


Отправлено fire64 25-02-2010 в 12:54:

отыскал старый код движка.

я использовал там

boost-1.34.1
Lua 5.1.3
Luabind-r5007

помню точно что у той версии отсутствует поддержка 6 студии.

ок, гляну ту версию о которой ты говоришь.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено XaeroX 25-02-2010 в 12:56:

fire64
Вот мне перейти на новую студию религия не позволяет.
А тебе что мешает?
Халфа отлично компилится, скажем, 2005-й студией.

__________________

xaerox on Vivino


Отправлено fire64 25-02-2010 в 12:59:

XaeroX, хз.

при необходимости я конечно использую 2008 студию, но 6 мне как-то ближе.

я с нее начинал и она мне просто привычней.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 25-02-2010 в 13:57:

Цитата:
fire64 писал:
я использовал там

boost-1.34.1

Ой-ей-ей ты еще и буст юзаешь

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено fire64 25-02-2010 в 16:05:

так его же использует Luabind

Добавлено 25-02-2010 в 17:59:

сейчас хотел поставить последнюю версию Luabind
но для этого мне нужен Boost
скачал Boost_build 2, а там jam файлы
я пошел на официальный сайт, там ссылка на Boost.Jam
http://www.boost.org/doc/tools/buil.../jam/index.html
по которой выдается ошибка


404 Not Found

File "boost-build/tools/jam/index.html"not found.


напрашивается вопрос, какого хрена нужно столько мучиться что бы установить Luabind ?

Добавлено 25-02-2010 в 19:05:

поправка
это именно Boost не поддерживает 6 студию

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено XaeroX 25-02-2010 в 16:21:

Цитата:
fire64 писал:
напрашивается вопрос, какого хрена нужно столько мучиться что бы установить Luabind ?

Ну это примерно как установка и настройка линукс. Три дня мучаешься, потом кайфуешь Я как в 2006 году все поставил - с тех пор все работает. Даже после переустановки системы нужно просто папку буста кинуть в инклуды, и всё.

__________________

xaerox on Vivino


Временная зона GMT. Текущее время 13:01. Страницы (2): [1] 2 »
Показать все 19 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024