forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   Luabind (http://forum.boolean.name/showthread.php?t=17073)

ANIK123 23.07.2012 23:40

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

#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; <-получить адрес члена обьекта члена обьекта? можно как-то сделать? %-)

ANIK123 16.08.2012 18:14

Ответ: Luabind
 
-up-

ANIK123 16.08.2012 21:12

Ответ: Luabind
 
я не верю что НИКтО не имел дела с луабинд на плюсах
вобще недавно снова взялся за этот всраный луа-бинд (перепробовав много других оберток/биндов) И!! - вернулся к этому самому луабинду
блин, варнинги остались те же - как исправить?!?
да помогите, люди! варнинги не влияють (вроде) на работу бинда но все же они есть! помогите!!!

jimon 17.08.2012 00:16

Ответ: Luabind
 
зачем ты с clr компилишь ? тебе нужен управляемый c++ для c# ?

ANIK123 17.08.2012 05:43

Ответ: Luabind
 
http://www.gamedev.ru/code/forum/?id=165853#m3

jimon 17.08.2012 11:48

Ответ: Luabind
 
Цитата:

Сообщение от ANIK123 (Сообщение 236503)

тебе там уже написали - управляемый 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 18:47

Ответ: 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


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot