我意識到這可能不是您的問題的確切答案,但我想我會把我的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