1

我将 ZeroBrane IDE 用于 lua 脚本,将 Visual Studio 2015 用于 C# 我可以使用普通变量从 C# 调用 lua 脚本,但我无法使用 sql-odbc 运行脚本,它仅在 zeroBrane 中工作,但从 c# 我不能.

这是c#代码

try
{
   Lua lua = new Lua();
   lua.DoFile("DGT_MSID.lua");

   var x = lua.DoString("return GetData()");
   Console.WriteLine(x.First().ToString());
} catch(NLua.Exceptions.LuaScriptException ex)
{
   Console.WriteLine(ex.Message);
}

DGT_MSID.lua 脚本

function GetData()
  require "luasql.odbc"
  env = assert(luasql.odbc())
  print(env)
  con = assert(env:connect("conan", "sa", "p@ssw0rd"))
  print(con)
  cur = assert (con:execute"use testdb")
  cur = assert (con:execute"SELECT MSISD FROM MSID")
  row = cur:fetch({}, "a")

  while row do
    print(string.format("%s",row.MSISD))
    row = cur:fetch (row, "a")
  end

  cur:close()
  con:close()
  env:close()

  return row.MSISD
end

这是这个错误:

从文件'...\Debug\luasql\odbc.dll'加载模块'luasql.odbc'时出错:找不到指定的模块

4

1 回答 1

0

我怀疑 odbc.dll 的依赖项之一丢失或未加载(可能是 Lua DLL 或它链接的其他库)。您可以使用dependency walker来获取依赖项列表,甚至可以在“配置文件”模式下运行您的应用程序,这将显示所有加载的DLL 以及任何失败的加载及其相关错误。

于 2019-01-24T15:46:21.957 回答