Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 23.07.2012, 23:40   #1
ANIK123
Знающий
 
Аватар для ANIK123
 
Регистрация: 29.11.2010
Сообщений: 244
Написано 31 полезных сообщений
(для 49 пользователей)
Смех Luabind

с Луа думаю подавляющее большинство знакомы, и наверняка пользовались луа-биндером
как ПРАВИЛЬНО собрать бинд-либу?
добавил в решение новый проект, в его свойствах выбрал "не использовать предскомпилированные хедеры", запихнул все файлы из "src" луабинда в "файлы исходного кода", компилю и вылетают варнинги (в дебаг-версии) типа "luabind::default_converter<lua_State *>::consumed_args: функция скомпилирована как машинная: varargs не поддерживаются в /clr"
без ошибок!) но все же варнинги это не гуд)))
ок, дальше:
добавляю в зависимости главного проекта созданную либу, включаю нужные хедеры, пишу тестовый код:
#include <lua.hpp>
#include <luabind/luabind.hpp>
Handle CreateBackground(){
блаблабла
return background;
}

lua_Statelua_open();
luaL_openlibs(L);
luabind::open(L);
luabind::module(L)
    [
        
luabind::def("CreateBackground", &CreateBackground)
    ];
luaL_dofile(L"sc.txt");
lua_close(L); 
при компиляции опять варнинги типа "warning LNK4248: неразрешенная лексема TypeRef (01000012) для "lua_State"; образ нельзя запустить"
но к большому моему удивлению все работает)))
как исправить варнинги? как обеспечить 100-процентную работоспособность?
и еще: было бы хорошо строить не статическую а динамическую либу, ибо компиляция основного проекта сильно замедлилось можно так?

UPD: можно как нить сделать так:
class A{
int val;
};
class B{
A * a;
};
&B::a::val; <-получить адрес члена обьекта члена обьекта? можно как-то сделать? %-)
__________________
Intel Core i3-4005U (1.7 ГГц), 4 ГБ ОЗУ, nVidia GeForce 940M 4 ГБ, Win8.1

Последний раз редактировалось ANIK123, 24.07.2012 в 03:39.
(Offline)
 
Ответить с цитированием
Старый 16.08.2012, 18:14   #2
ANIK123
Знающий
 
Аватар для ANIK123
 
Регистрация: 29.11.2010
Сообщений: 244
Написано 31 полезных сообщений
(для 49 пользователей)
Ответ: Luabind

-up-
__________________
Intel Core i3-4005U (1.7 ГГц), 4 ГБ ОЗУ, nVidia GeForce 940M 4 ГБ, Win8.1
(Offline)
 
Ответить с цитированием
Старый 16.08.2012, 21:12   #3
ANIK123
Знающий
 
Аватар для ANIK123
 
Регистрация: 29.11.2010
Сообщений: 244
Написано 31 полезных сообщений
(для 49 пользователей)
Ответ: Luabind

я не верю что НИКтО не имел дела с луабинд на плюсах
вобще недавно снова взялся за этот всраный луа-бинд (перепробовав много других оберток/биндов) И!! - вернулся к этому самому луабинду
блин, варнинги остались те же - как исправить?!?
да помогите, люди! варнинги не влияють (вроде) на работу бинда но все же они есть! помогите!!!
__________________
Intel Core i3-4005U (1.7 ГГц), 4 ГБ ОЗУ, nVidia GeForce 940M 4 ГБ, Win8.1
(Offline)
 
Ответить с цитированием
Старый 17.08.2012, 00:16   #4
jimon
 
Сообщений: n/a
Ответ: Luabind

зачем ты с clr компилишь ? тебе нужен управляемый c++ для c# ?
 
Ответить с цитированием
Старый 17.08.2012, 05:43   #5
ANIK123
Знающий
 
Аватар для ANIK123
 
Регистрация: 29.11.2010
Сообщений: 244
Написано 31 полезных сообщений
(для 49 пользователей)
Ответ: Luabind

http://www.gamedev.ru/code/forum/?id=165853#m3
__________________
Intel Core i3-4005U (1.7 ГГц), 4 ГБ ОЗУ, nVidia GeForce 940M 4 ГБ, Win8.1
(Offline)
 
Ответить с цитированием
Старый 17.08.2012, 11:48   #6
jimon
 
Сообщений: n/a
Ответ: Luabind

Сообщение от ANIK123 Посмотреть сообщение
тебе там уже написали - управляемый C++ (с CLR) и неуправляемый (классический C++) это разные вещи, в геймдеве зачастую используют неуправляемый и либы на него рассчитаны, так зачем ты поставил флаг компиляции управляемого кода ?

а по твоему ps: нельзя так сделать
class A{
    int val;
};
class B{
    A * a;
};

B foo;
foo->a = ....;
int & v = &foo->a.val;
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ANIK123 (17.08.2012)
Старый 17.08.2012, 18:47   #7
ANIK123
Знающий
 
Аватар для ANIK123
 
Регистрация: 29.11.2010
Сообщений: 244
Написано 31 полезных сообщений
(для 49 пользователей)
Ответ: Luabind

УРА, все работает!
создал новый Win32 Console Application проект (а не библиотеку классов как раньше), в свойствах указал тип как статическая библиотека, и все скомпилилось даже без намеков на неладное!)
как вы уже поняли я в таких делах полный нуб, пойду погуглю на тему "что за штука такая этот clr", и СПАСИБО Вам за помощь)

UPD:
и еще: вроде как бы разумно использовать предкомпилированные заголовки
в свойствах проекта: создавать предварительно скомпилированные заголовки, имя: pch.csm
создал pch.h, закинул в него луабинд.hpp
инклюдил pch.h в главный срр и после дописал #pragma hdrstop
получил:
c:\program files\microsoft visual studio 9.0\vc\include\xlocale(797) : error C2857: оператор '#include', указанный с параметром командной строки /Ycpch.csm, не найден в исходном файле
luabind\detail\policy.hpp(642) : error C2857: оператор '#include', указанный с параметром командной строки /Ycpch.csm, не найден в исходном файле

печаль(

UPD:
решено)
http://chabster.blogspot.com/2008/06...6 52515371735
__________________
Intel Core i3-4005U (1.7 ГГц), 4 ГБ ОЗУ, nVidia GeForce 940M 4 ГБ, Win8.1

Последний раз редактировалось ANIK123, 18.08.2012 в 14:34.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 01:34.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com