問題タブ [luabind]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2678 参照

c++ - Lua がそのクラス内でバインドされている場合、LuaBind を使用してクラス内で Lua 関数を呼び出します。

基本的には、Manager クラス内でクリーンな Lua インスタンスを作成し、クラス内の関数を Lua にエクスポートして、Lua 内で既に作成されている C++ クラスで関数を呼び出せるようにしたいだけです。

これは、私が問題を解決しようとしている現在の方法です。コンパイルはできますが、Lua では何も起こりません。

誰かが私が間違っていることを知っていますか、または他の提案はありますか?

Manager.lua

Manager.h

Manager.cpp

0 投票する
1 に答える
4436 参照

c++ - LuaBind:クラスの特定のインスタンスをLuaにバインドする方法は?

(補足:これはゲームプログラミングです)

LuaBindを使用してクラス全体をLuaにバインドするのは簡単です。

//何処か別の場所

これで、Luaでクラスのインスタンスを作成し、それを使用できます。

lua_example.lua

ただし、ここで、特定のテストインスタンスをLuaにバインドしたいと思います。これにより、オブジェクトをLuaに渡すことができます。たとえば、Playerクラスのインスタンスを使用して、次のようなことを行うことができます。

苦労して何かをするのとは対照的に

ここで、対応するC ++ SetPosition関数は、プレーヤーを見つけるためにstd::mapを検索する必要があります。

これも可能ですか?もしそうなら、LuaBindでどのように行うことができますか?

0 投票する
2 に答える
921 参照

lua - Custom constructor in Luabind

I'm using Luabind to bind a C++ API to Lua. I have some objects that cannot be created directly, but rather must be created on another thread. I'm currently handling this by defining a "static" member called create that yields until the object is created:

This works, but has the disadvantage of complicating the client API. For these classes, you cannot create them normally (e.g. local f = Foo()), but instead need to do local f = Foo.create().

Is it possible to define a Luabind constructor that doesn't actually call the C++ constructor, but instead another function that returns the constructed object (and can yield in the meantime)? I've tried defining bindings for __init and __call (the latter under a scope, to define it on the class, not its instances), but I didn't have success with either approach.

0 投票する
1 に答える
1447 参照

c++ - LNK2005 の解決方法: 既に定義済み

Lua と Luabind から C++ へのプロジェクトに取り組んでいます。ここで、C++ にエクスポートするすべてのクラスで、静的メソッド Register を次のように記述します。

Button.h で:

Button.cpp:

すでに Lua にエクスポートしたすべてのクラスについて、これは正常に機能します。しかし、Button.cpp の場合、これはうまくいかないようです。

次のリンカ エラーが発生します。

誰でもアイデアはありますか?

0 投票する
1 に答える
1377 参照

c++ - luabind:print、tostringなどの基本的なlua関数を呼び出すことはできません

私が推測する非常に基本的な質問:

luaを呼び出すC++コードは、次のようになります。

現在、test.luaには次の内容が含まれています。

実行すると、次のエラーが発生します。

何が問題ですか?それは環境と関係がありますか?印刷のような機能は地球環境で定義されていると思いました。なぜそれが見つからないのですか?

どうもありがとうございます。

0 投票する
1 に答える
1377 参照

c++ - luabindおよびstaticフィールド

クラスから静的フィールドをエクスポートしようとしています:

私は何を逃したのですか?

0 投票する
1 に答える
12272 参照

c++ - エラー: トークン "(" の前に二項演算子がありません

gcc のアップグレード後、次のエラーが原因でプロジェクトのビルドに失敗しました:

どうなり得るか?最新の gcc (4.8) スナップショットも試しましたが、役に立ちませんでした。

ps

0 投票する
1 に答える
387 参照

c++ - 一部のデータをLua呼び出し関数にプッシュします

2つのファイルがあります。1つはLuaスクリプトを実行するためのもので、もう1つはスクリプト自体です。

はい、どうぞ:

host.cpp

script.lua

でコンパイルhost.cppg++ host.cpp -o host.elf -I/usr/include/lua5.1 -llua5.1ます。

実行の結果host.elfは次のとおりです。

あるべきですが:

私は何を間違えますか?

0 投票する
1 に答える
229 参照

lua - グローバルをポインターとして割り当て、lua で使用する必要があります

luabind を使用しており、この lua コードを機能させたいと考えています。

c++から、luaのグローバル変数「base」を「Base」クラスへのポインタとして代入したい。

Luabind を使用して、Base クラスをバインドできます。C++ で基本クラス オブジェクトを作成しています。このポインターを lua にプッシュし、上記の lua コードに見られるように lua グローバル変数 "base" として使用したいと考えています。

誰かが私を助けてくれますか? lightuserdata としてプッシュしようとしましたが、PrintMe が lua から呼び出されません。