我们想将脚本添加到项目中。
我们正在犹豫使用哪个脚本引擎。我在过去使用过 V8,它非常令人印象深刻。我也使用过 Mono,但仅限于玩具项目或原型。
约束是:
- 执行速度。
- 易于集成。
- 必须在 Windows 上工作。
- 64 位支持。
- 在 Visual Studio 下编译。
哪种发动机最适合?
(有没有使用 Visual Studio 在 win64 下编译 Mono 的教程?是否有一些包含 Lib 文件和 DLL 的包?)
我们想将脚本添加到项目中。
我们正在犹豫使用哪个脚本引擎。我在过去使用过 V8,它非常令人印象深刻。我也使用过 Mono,但仅限于玩具项目或原型。
约束是:
哪种发动机最适合?
(有没有使用 Visual Studio 在 win64 下编译 Mono 的教程?是否有一些包含 Lib 文件和 DLL 的包?)
我建议你看看Lua。我认为它非常令人满意地满足您的需求。
由于没有赞成的答案,我将提到ChaiScript(是的,我是该项目的共同创建者)。它是一个仅用于嵌入 C++ 应用程序的标头脚本引擎。它具有完整的 64 位支持,可与 MSVC、G++ 和 MinGW 一起使用。唯一的外部依赖是boost。
它不赢的地方是速度。如果您需要在脚本本身中进行大量计算,那么我认为您使用的是错误的脚本。您可以向脚本引擎公开的功能级别越高越好。
V8。它实际上是一个脚本引擎,而不是像 Mono(它在大小上与 Java 相媲美)这样的完整编程环境。
但是...如果您想要一种脚本语言,您可能还想看看 Lua。它以易于嵌入、非常快、非常小、非常容易编程而著称,并且具有非常自由的许可证。如果速度很重要,还有 LuaJIT,它仍在开发中,但小心翼翼地在数值编程方面胜过 C。
Mono 发行版中包含一个 MSVS 解决方案文件,它足以构建一个库(但您将无法构建 .DLL,最好从二进制发行版中选择它们)。有关mkbundle
将 .NET DLL 嵌入到单个二进制文件中的方法,请参阅。至于脚本本身,您可以嵌入 Mono C# 编译器(它不是那么大,而且很容易集成)或使用针对 .NET 的众多脚本语言中的任何一种,例如 IronPython。
Python 也不错,使用Boost.Python。