2012-04-19 117 views
0

這對我來說非常棘手,我希望有人能幫助我。Lua腳本編程和C#

情況:我目前正在C#3.5 .NET中使用一個應用程序,它與使用DLL Imports在C++中編寫的DLL進行接口,這一切都正常。我也有一個Lua腳本,該腳本如下:

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

再比如,有一個通過計算從圖溫度的函數:

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

什麼,我希望能夠到做,是將PixelValue返回給我的應用程序。

XCamera()& XSensorImage()是在相機過濾器初始化並且Lua腳本處於活動狀態時創建的實例。

無論如何在運行時從腳本訪問像素值? 對不起,如果我不夠詳細,請詢問是否需要更多,您的反饋非常感謝。

回答

0

您可以從函數返回PixelValue。

return PixelValue; 
+0

是的,但是,腳本被圖像過濾器調用,所以它由攝像機上的圖像過濾器內部運行,有沒有辦法將該值發送到Windows窗體?或者把它放到內存中? – Haden693 2012-04-19 01:14:51

0

C++ DLL託管Lua運​​行時,而不是您的C#應用​​程序?然後,不,可能沒有簡單的方法來做到這一點。如果DLL使用的是共享Lua DLL並且沒有鎖定擴展名,則可能會加載使用某種形式的進程間通信的庫來傳回C#應用程序。

+0

C#應用程序在處理腳本的C++ DLL中調用一個函數,所以我不認爲有任何簡單的解決方法! – Haden693 2012-04-19 04:11:41