2012-04-19 14 views
0

これは私にとって非常に難しいことです。私は誰かが私を助けることを望んでいます。Lua Scripting and C#

状況:私は現在、C#3.5 .NETでアプリケーションを作成していますが、DLLインポートを使用してC++で書かれたDLLとインターフェイスしています。私はまた、Luaのスクリプトを持って、このスクリプトは次のとおりです。

Width   = XCamera():GetWidth() 
Height   = XCamera():GetHeight() 
Img    = XSensorImage() 

次に、例えばによってIMGから温度を計算する関数があります:

function OnFrame() 
    local CoordsTable = { i, j } 
    local PixelTable = Img:GetPixels(CoordsTable) 
    PixelValue = FromLinearizedADU(PixelTable[1] or 0) 
end 

私のことができるようになりたいもの私のアプリケーションにPixelValueを返します。

XCamera()& XSensorImage()は、カメラフィルタが初期化され、Luaスクリプトがアクティブなときに作成されるインスタンスです。

実行中にこのスクリプトからPixel Valueにアクセスすることはありますか? 私は十分な詳細されていない場合はごめんなさい、あなたが多くを必要とするかどうか尋ねてください、あなたのフィードバックは非常に感謝しています。

答えて

0

この関数からPixelValueを返すことができます。

return PixelValue; 
+0

はい、スクリプトはイメージフィルタによって呼び出されるため、カメラのイメージフィルタによって内部的に実行されます。その値をWindowsフォームに送信する方法はありますか?またはそれをいくつかのメモリにドロップすることができますか? – Haden693

0

C++ DLLはC#アプリケーションではなく、Luaランタイムをホストしていますか?それで、いいえ、おそらく簡単な方法はありません。 DLLが共有Lua DLLを使用しており、拡張子がロックダウンされていない場合は、何らかの形式のプロセス間通信を使用してC#アプリケーションに通信するライブラリをロードする可能性があります。

+0

C#アプリケーションは、スクリプトを扱うC++ DLLの関数を呼び出します。だから私はこれを回避する方法はないと思います! – Haden693