我意识到这可能不是您的问题的确切答案,但我想我会把我的2美分价值,因为我怀疑很多人都试过这个。
我通过使用混合模式C++创建了一个托管包装来实现它。还有其他方法可以做到这一点,但是我打算尝试制作一个可以从任何.Net语言使用的完整包装器。
让lib编译成可以包含在混合模式项目中的方式有点难度。我必须修改用于/ MD和/ MDd的运行时库(在SConstruct文件中),以便它与/ clr开关兼容。
到目前为止,我只有简单的脚本运行,因为我没有实现回调,自定义方法,对象等。
这里是什么样的使用看起来像我的测试应用程序的一个快速示例:
V8DotNet.Shell shell = new V8DotNet.Shell();
shell.ExecuteScript(@"print('V8 version is: ' + version());");
它可以运行更复杂的脚本,像一个base64编码器精也。但现在我只能从C++端添加自定义项目。
我愿意提供更多的信息+代码,如果任何人有兴趣,因为我可能从来没有选择这个项目备份。但是,恐怕有很多代码需要在这里发布,所以我们必须找到其他一些媒体,比如google代码或codePlex。
编辑:
OK,我已经上传的代码。我必须在此声明一个免责声明:该项目非常早,我最好是C++的业余爱好者,所以不要让自己的希望过高。此外,这个项目是在chrome发布之后创建/完成的,因此包含的v8版本可能会比较旧。
这就是说,这里是:http://ryanscook.com/Files/V8-DotNet.zip(21。5 MB)
在包你会发现感兴趣的以下项目:
V8Net库\ V8.Net \ V8.Net.sln -这 是有解决方案管理 C++包装程序和一个C#控制台应用程序 进行测试。
Dependencies \ V8 -这是我用来构建V8库的V8代码 。
希望它有帮助!
顺便说一句,我可以在哪里获得已编译DLL的副本? (因为我自己懒得编译它,主要是因为我没有VS设置为执行C++) – 2008-12-10 19:10:08
我更新了我的文章链接,下载我创建的测试项目。 – 2008-12-10 21:43:05
对于那些刚刚查找此页面的用户,现在还有Codeplex上的V8.NET。 – 2013-06-01 19:32:09