HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Указатель на функцию
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



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

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

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


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 не подходит для этого

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

Отредактировано fire64 25-02-2010 в 09:59

Сообщить модератору | IP: Записан
Сообщение: 53262

Старое сообщение 25-02-2010 09:41
- За что?
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


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

например

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 );

Сообщить модератору | IP: Записан
Сообщение: 53265

Старое сообщение 25-02-2010 10:41
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33058
Нанёс повреждений: 392 ед.

Рейтинг



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

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | IP: Записан
Сообщение: 53270

Старое сообщение 25-02-2010 11:30
-
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



сделал так

typedef int (lua_func) (lua_State *L);

и

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

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

Сообщить модератору | IP: Записан
Сообщение: 53274

Старое сообщение 25-02-2010 11:41
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35046
Нанёс повреждений: 514 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


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

__________________

Сообщить модератору | IP: Записан
Сообщение: 53276

Старое сообщение 25-02-2010 11:52
-
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



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


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

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

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

Сообщить модератору | IP: Записан
Сообщение: 53280

Старое сообщение 25-02-2010 12:28
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35046
Нанёс повреждений: 514 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


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

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

__________________

Сообщить модератору | IP: Записан
Сообщение: 53285

Старое сообщение 25-02-2010 12:43
-
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



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

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

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

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

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

Сообщить модератору | IP: Записан
Сообщение: 53287

Старое сообщение 25-02-2010 12:46
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35046
Нанёс повреждений: 514 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


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. Работает она превосходно, с багами не сталкивался, поэтому новые версии качать смысла не вижу.

__________________

Сообщить модератору | IP: Записан
Сообщение: 53288

Старое сообщение 25-02-2010 12:53
-
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



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

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

boost-1.34.1
Lua 5.1.3
Luabind-r5007

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

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

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

Сообщить модератору | IP: Записан
Сообщение: 53289

Старое сообщение 25-02-2010 12:54
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35046
Нанёс повреждений: 514 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


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

__________________

Сообщить модератору | IP: Записан
Сообщение: 53290

Старое сообщение 25-02-2010 12:56
-
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



XaeroX, хз.

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

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

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

Сообщить модератору | IP: Записан
Сообщение: 53291

Старое сообщение 25-02-2010 12:59
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33058
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
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'

Сообщить модератору | IP: Записан
Сообщение: 53305

Старое сообщение 25-02-2010 13:57
-
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



так его же использует 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 студию

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

Сообщить модератору | IP: Записан
Сообщение: 53307

Старое сообщение 25-02-2010 16:05
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35046
Нанёс повреждений: 514 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


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

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

__________________

Сообщить модератору | IP: Записан
Сообщение: 53309

Старое сообщение 25-02-2010 16:21
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 18:52. Новая тема    Ответить
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Указатель на функцию
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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