无需在 Flash 中重新编码或将其制成 Java 小程序!将其保留为 C++ 应用程序,有没有办法将其嵌入到网页中,以便网站访问者可以玩游戏?
我们可以假设它是一款小型游戏,与普通 Flash 游戏一样大,甚至更薄。
有问题的游戏是用 Allegro 库编写的,代码不到 1000 行。
是否可以?
快速回答:不,你不能。
C++ 应用程序不能嵌入到网页中,它们需要被下载并且用户必须在客户端机器上运行它们。
详细信息:这在某种程度上是可能的,但绝对不能跨浏览器移植。例如,Internet Explorer 具有ActiveX组件(它们可以是 C++ 应用程序,它将被下载、安装并在网页内运行)。其他浏览器有不同的机制来实现这一点(例如,Chrome 有它的Native Client),但你不能写出真正可移植的东西,而且无论你使用什么,都会有很多限制。
有可能的
http://code.google.com/p/nativeclient/
其实这已经是旧闻了……
http://www.engadget.com/2010/05/13/googles-native-client-sdk-developer-preview-provides-helpful-re/
试试 emscripten 项目,它是一个基于 LLVM Clang 的 C++ 编译器,将 C++ 文件编译成 JS 文件,然后可以在浏览器中运行。
#include <iostream>
int main()
{
using namespace std;
cout << "Hello World" << endl;
return 0;
}
假设您helloWorld.cpp
在安装 Emscripten 后将其保存在使用中。
$ emcc helloWorld.cpp -o helloWorld.html
您将完成,helloWorld.html
现在在浏览器中打开并亲自查看。Emscripten 的好处是它支持广泛的桌面库,包括 SDL 等,
它只能作为 Google Chrome 浏览器的插件作为原生扩展。