我真的不明白this article。但听起来你可以为flash编译C / C ++。如果可能的话,在Flash中编译和运行Mono有多难?
听起来很愚蠢我知道......也许我的年龄会变得疯狂。
答案 0 :(得分:5)
我确信一个真正优秀且专注的黑客,能够改变单声道运行时和flash播放器,可以在几个月的工作中运行一个简单的hello-world式程序。 也就是说,实现所有功能要么非常复杂,要么极其缓慢,因此,从实际角度来看,使用这种方法是行不通的。
如果您想在浏览器中运行基于CLR的托管代码,请查看Moonlight 2.0进度here:它今天有效,速度快,可以轻松移植到大范围内运行设备(例如,还有Android的Mono端口)。
答案 1 :(得分:1)
可能是第一次,但只是编译。让我看看我是否到了你想去的地方。
Mono可以运行即时代码,但即使现在有C# Shell它首先编译为IL(也许是JIT),然后执行。有了这项技术,Flash就可以生成.NET程序集,但不能运行它们!
我们需要一个.NET IL到AS3字节码转换器才能在Flash中运行.NET程序集。可能你在考虑这个,对吗?但这根本不是疯了,它是兼容性!
答案 2 :(得分:1)
没有理由你不能在炼金术中写一个CLR,但炼金术不会将C编译为本机代码(它被编译为字节码),所以它的性能和安全性都会受到限制,就像普通的动作一样。因此,你可能需要重写很多单声道。
所以简而言之:这是可能的,但你不会赢得任何表现奖。
答案 3 :(得分:0)
Alchemy使用LLVM将已编译的C / C ++代码转换为ActionScript。 LLVM(http://www.llvm.org/)是一个编译器基础结构(从该页面的标题中删除!),它支持将C / C ++编译为低级指令集。您可以在其上构建虚拟机,分析有关已编译代码的信息(如数据流或代码覆盖等),并且通常可以执行各种很酷的操作。
我认为你不能用它来将IL翻译成闪存。