1

我一直在几个需要脚本的 C# 应用程序中使用 LuaInterface 和 Lua 5.1,尤其是一些游戏、一个 IRC 机器人和一个我最近决定恢复工作的完整 IRC 客户端。

有一次,我切换到 .Net 4.0,不得不重新编译 LuaInterface 和 Lua51 才能让它们再次运行。据我所知,一切都很好。

但是,我最近购买了一台新笔记本电脑并试图从中运行我的机器人。令我惊讶的是,它在尝试初始化 Lua 时崩溃了,引用了 lua51.dll 上的 FileNotFoundException,它就在那里。我不理会它,然后继续重新安装东西,包括 Visual C# 和 C++ 2010 Express,以及一些更新。第二天早上,我再次尝试启动聊天机器人,试图弄清楚——你瞧,它奏效了。出于某种奇怪的原因。

今天早些时候,我的一个朋友告诉我完成我正在开发的 IRC 客户端,它相当广泛地使用 Lua 来添加功能和其他很酷的东西。我给了那个朋友一份副本,以检查最重要的问题……他得到了完全相同的错误。

现在,另一个人没有 Visual Studio,我无法重现这个问题,而且不能指望我上面列出的其他东西的用户安装它只是为了让它们运行——一般相对理智的用户只会耸耸肩,摆脱程序。

那怎么办?

4

2 回答 2

1

引用 lua51.dll 上的 FileNotFoundException,它就在那里

这使得它很可能抱怨找不到 lua51.dll 需要的 DLL。一个很可能是 msvcr100.dll,C/C++ 运行时支持库。安装 Visual Studio 时会安装哪个。您可以使用 /MT 选项重建 lua,以便 CRT 包含在 DLL 本身中。或者告诉你的朋友下载并安装

于 2011-10-17T10:24:18.337 回答
0

你可以试试 SysInternals 的Process Monitor。我经常用它来找出这些问题的根本原因。它将向您显示应用程序在文件系统上的何处查找 dll 的低级详细信息,这应该可以告诉您为什么找不到它。

您可能需要使用搜索和过滤选项,因为它会生成大量数据,但它是我找到的解决此类问题的最佳工具。

于 2011-10-16T17:10:20.790 回答