【问题标题】:Lua Scripting and C#Lua 脚本和 C#
【发布时间】:2012-04-30 12:11:12
【问题描述】:

这对我来说很棘手,我希望有人可以帮助我。

情况:我目前正在使用 C# 3.5 .NET 编写一个应用程序,它使用 DLL Imports 与用 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 脚本处于活动状态时创建的实例。

在运行时是否可以从该脚本访问像素值? 很抱歉,如果我不够详细,请询问您是否需要更多信息,非常感谢您的反馈。

【问题讨论】:

    标签: c# c++ dll scripting lua


    【解决方案1】:

    您可以从函数中返回 PixelValue。

    return PixelValue;
    

    【讨论】:

    • 是的,但是,该脚本由图像过滤器调用,因此它由相机上的图像过滤器在内部运行,有没有办法将该值发送到 Windows 窗体?或者也许把它放到一些记忆中?
    【解决方案2】:

    是 C++ DLL 托管 Lua 运行时,而不是您的 C# 应用程序吗?那么,不,可能没有简单的方法可以做到这一点。如果 DLL 使用共享 Lua DLL 并且没有锁定扩展,您可能会加载一个库,该库使用某种形式的进程间通信来与 C# 应用进行通信。

    【讨论】:

    • C# 应用程序调用 C++ DLL 中的一个函数来处理脚本,所以我认为没有任何简单的方法可以解决这个问题!
    猜你喜欢
    • 1970-01-01
    • 2013-07-24
    • 2011-06-11
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-20
    • 2021-04-12
    相关资源
    最近更新 更多