我开始搞乱Ypsilon,它是Scheme的C++实现.
它符合R6RS,具有快速的垃圾收集器,支持多核CPU和Unicode,但有一个LACK文档,C++代码示例和代码中的注释!
作者将其作为独立的控制台应用程序提供.我的目标是将其用作图像处理应用程序中的脚本引擎.
源代码结构良好,但结构不熟悉.我花了两周时间穿透它,这就是我发现的:
据我了解,我需要实现3个自定义端口(IN,OUT和ERROR).但是现在我无法弄清楚处理程序中每个函数(onRead,onWrite,onSetPos,onGetPos,onClose)的输入参数是什么.
不幸的是,既没有实现自定义端口的示例也没有以下内容的示例:
总而言之,如果有人提供上述任何场景的C++示例,它将显着节省我的时间.提前致谢!
我想为我的C++游戏引擎添加脚本功能.
我有Engine.exe,Physics.dll,Audio.dll和我加入Scripting.dll这是一个高层次的球拍包装.
Engine.exe加载Physics.dll和设置物理世界,加载Audio.dll和设置音频世界.它应该加载Scripting.dll,以绑定成立Physics.dll,Audio.dll并加载游戏脚本.
AFAIK有两种方法可以将Racket嵌入到C++程序中:
使用外部接口,由于需要加载似乎离奇Physics.dll,Audio.dll两次:第一次从Engine.exe,然后从游戏脚本.
编写扩展名看起来更具吸引力,因为它允许在C++端进行脚本绑定.另一方面,你必须构建你的扩展raco ctool,链接它与mzdyn目标文件 - 这看起来也很尴尬:为什么不建立mzdyn一个静态库?
我想实现一个方法,例如setupScriptBindings(),在in Physics.dll和in中Audio.dll,并Engine.exe在启动时调用它.
有一种直截了当的方法吗?