2009-07-30 9 views
4

誰かがLuaとVB6を統合するためのヒントを持っているのだろうかと思います。私はいくつかのスクリプトを追加するにはすばらしいオンラインRPGを実行しています。VB6 - ルアインテグレーション

答えて

5

まあ、それは可能です。私はかつてLua 5.0.2のためにそれをしましたが、ファイルを見つけることができません。あなたが持っているオプションの中で、次のことができます。あなたはそれへの参照を追加することができますLuaのAPIを露出したCOM DLL内

  • ラップのLua、VBでなります。

  • __stdcall呼び出し規約を使用してカスタムLuaバージョンを作成します。これにより、VBでDeclareを使用して必要なLua関数をインポートできます。タイプライブラリを書くことで、VBとの統合が簡単になります(主に、Cの文字列からVBの文字列への変換を行います)。

  • 私はLuaのカスタムビルドを使用して、私はVB関数を登録することができることを覚えておいてください

など、マクロで定義された機能を追加し、Luaののインターフェイスを複製するが__stdcallを使用したラッパーDLLをビルドします(モジュールで定義されている)をLuaに組み込み、スクリプトから呼び出します。メンバー関数を呼び出すことができたら、私は思い出しません。

私はこれがあなたを始められることを望みます。

+0

+1。 Matt Curlandの書籍「Advanced Visual Basic 6」には、VB6からCDECL DLLを呼び出す方法が含まれていますが、各関数呼び出しにオーバーヘッドが追加されるため、慎重に使用することになります。このLUA RPGのカスタム__stdcallバージョンを構築する方が良いかもしれません。 – MarkJ

+0

オーバーヘッドはサイズとパフォーマンスの文字列割り当てに関するものです:-)) – wqw

+0

@wqw:文字列割り当てのオーバーヘッドがほとんど関係しないのと同じように、ほとんどの場合、オーバーヘッドは関係ないかもしれません。 – MarkJ

1

LuaInterfaceを使用してください。これは、あなたがluaを使用できるようにする.NETライブラリです。しかしそれはdocsとそれ自身の中で来ません、thisを見てくださいいくつかの役に立つガイドです。

基本的には、プロジェクトにDLLを追加し、サテライトを使ってそれを参照/追加してから、新しいLuaオブジェクトを作成します。そこから、配列のように変数を抽出するようにアクセスできます。また、関数を呼び出してテーブルを操作する方法もあります。

+1

質問は、VB .NETではなくVB 6を指します。 –