問題タブ [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.
c++ - 戻り時に luabind '登録されていないクラスを使用しようとしています'
現在、luabind を使用してクラスをバインドしています (正確には SFML 2.0 の sf::Time を使用しています)、luabind から例外が発生し続けています。ここに私のバインディングコードがあります:
私のルアコードは次のとおりです。
sf::seconds の署名は次のとおりです。
sf::Time を返す独自の関数で sf::seconds への呼び出しをラップしてみました。また、戻り値として sf::Time* を使用してみました。何があっても、エラーが発生し続けます。
何か案は?
編集:
クラス自体をテストしましたが、Lua で system.Time() を使用して作成できますが、問題ありません。すべてのメソッドは正しく機能しますが、system.Time.seconds およびその他の静的メソッドは機能しません。
luabind - luabindを使用して複数の引数を持つファンクターをluaにバインドする方法
luabind を使用して 1 つの引数を持つファンクターを lua にバインドする場合は、次のコードが役立ちます。
ただし、ファンクターを複数の引数にバインドする方法は次のとおりです。たとえば、次のようになります。
boost - luaインクルードディレクトリを特定できません
Windows8RPにLuabindをインストールしようとしています。これは私がこれまでに行ったことです。
- 私のVisualStudioは2012RCバージョンです。
- LuaforWindows5.1.4をインストールしました
- luabind-0.9.1をダウンロードしました
- luabindに必要なboost_1_51_0をダウンロードしました
- BOOSTを正常にインストールしました
- BOOST_ROOT環境変数にBjamのパスを設定しました
- LUA_PATH環境変数でLuaのパスを設定しました
Luabindディレクトリでbjamを実行しようとすると、次のエラーが表示されます。
JamrootがLuaディレクトリへのパスを見つけるのに苦労している理由がわかりません。また、LUA_PATH環境変数だけでなく、PATH環境変数にもパスを含めてみました。
私はこれを3日間続けて探しています。私もこの方法を試してみましたが、それでも役に立ちませんでした。
誰かが私が間違っていることを知っているなら、私が間違っていることを知らせてください。
c++ - エラーを伴うLuaプロジェクトのコンパイル(luabind)
VisualStudio2010でLua+Luabindを使用してHelloWorldを作成しようとしています。ここからLuasrcをダウンロードし、そのソースファイルをプロジェクトに追加しました。次に、 luabindのソースをダウンロードして追加しました。最後にmain.cppを追加しました。その後、プロジェクトをコンパイルしようとしましたが、ほとんどすべてのluabindファイルでエラーが発生しました。
私が間違ったことを助けてください。プロジェクトに追加する必要のあるファイルは何ですか?多分いくつかの追加のライブラリ?luaプロジェクトを整理するためのベストプラクティスは何ですか?
luabind - luabind で btVector3 を返すバインド関数
btVector3 を使用してクラスをバインドしようとしています。コンストラクターで btVector3 をバインドすると正常に動作します。次のようなバインディング関数:
正常に動作しますが、これをバインドします:
次のエラーが表示されます:
エラー C2719: 'unnamed-parameter': __declspec(align('16')) の仮パラメーターは位置合わせされません
btVector3 が調整されていることは理解していますが、これを修正/回避するにはどうすればよいですか?
c++ - LuaBindは関数名を取得します
MVSのcallstackを使用して、C ++関数がluabindによってスクリプトでエクスポートされた場合、どのLua関数が私のC ++関数を呼び出したかを確認するにはどうすればよいですか?
lua - Lubind 呼び出し規約の問題
Luabind に問題があり、過度に単純化されたソリューションなしでは修正方法がわからないという問題があります。
Luabind は、__cdecl
呼び出し規約を使用した関数へのバインドのみを許可しているようです。私の現在のプロジェクトでは、拡張機能/プラグインに公開されているすべての機能が を使用して公開されて__stdcall
います。これにより、公開されたオブジェクトを直接バインドできなくなり、代わりに、公開されたオブジェクトのラッパーを作成する必要があります。これで問題ありませんが、ラップする必要のあるオブジェクトがたくさんあります。
たとえば、オブジェクトは次のようになります。
現在、プロジェクト全体の呼び出し規則を変更するオプションがないため、関数を操作するために Luabind にパッチを適用するソリューションがあるかどうかを確認してい__stdcall
ます。私はテンプレートやブースト機能が得意ではないので、機能を使用する__stdcall
機能をどこから追加しようとしているのかさえ個人的にはわかりません.
参考までに、私は以下を使用しています:
- ルア 5.1.4
- ルバインド 0.9.1
- VS2010
Lua と Luabind は両方とも、rev の最新バージョンのストックです。(プロジェクトの制限により Lua 5.2 は使用しませんが、5.2/Luabind の修正があれば__stdcall
喜んでそれを受け入れます。)
これを行うための非常に古いバージョンの Luabind の修正しか見つけることができませんでしたが、ネット上にまだ浮かんでいるパッチは、現在の Luabind コードとはまったく一致していません。
他に必要な情報があれば、お気軽にお尋ねください。
inheritance - Luabind 継承: self が定義されていません
Luabindで奇妙な問題に巻き込まれました。Lua から C++ クラスを継承したいのですが、Luabind のドキュメントに記載されている方法ではうまくいきません。
このコードは、self
定義されていないように見えるため、アプリケーションをクラッシュさせるだけです (nil
印刷すると返されます)。
ドキュメントに記載されているように、ラッパー構造体を使用しています。
私が間違っているかもしれないアイデアはありますか?
pointers - Lua C++ で void* ポインターを lua に渡す方法 && C++ に戻す方法
Lua にポインターを渡したいのですが、void*
userdata を使用しますか? これを行う方法?
ところで、私は luabind を使用しましたが、void*
Lua スタックへのポインターを渡すことができません。これは面倒です! 皆さん、私を助けてくれませんか?