Tag: c ++

创建ruby C ++扩展

我使用C ++类创建了一个示例ruby扩展。 当我没有解析值时,它工作正常。 但是当我解析参数时它显示错误。 这是我的代码。 C ++头文件 #ifndef CIRCLE_H_ #define CIRCLE_H_ class Circle { public: Circle(float radius):_radius(radius) {} float getArea() { return 3.14159 * _radius * _radius; } private: float _radius; }; CPP文件。 #include #include”Circle.h” VALUE method_test(VALUE y){ double x= NUM2DBL(y); Circle *cir= new Circle(x); return DBL2NUM(cir->getArea()); } extern “C” void Init_Test(){ VALUE lemon = […]

在C ++应用程序中嵌入Ruby解释器

我希望使用Ruby作为我的游戏引擎的脚本语言。 我发现通常的文章描述了如何从C ++代码调用Ruby类,反之亦然(例如这里 ),但我不太清楚如何用这种工作方式做我想做的事情…… 我的引擎目前使用的是我用Flex和Bison编写的一种语言,以及一个基于小堆栈的虚拟机。 脚本并不总是从头到尾运行,例如它们有时包括“睡2秒”或“等到角色走完”之类的命令,因此调度程序会监视每个脚本的状态和指令指针,并知道何时恢复它们,依此类推。 所以我似乎真的需要某种嵌入式Ruby解释器,我可以对它进行一定程度的控制,而不是简单地调用Ruby方法。 或者我只是因为迟钝而错过了什么? 我正在使用Microsoft Visual C ++,所以理想情况下,任何解决方案都可以很好地编译。

如何在C ++中嵌入Ruby?

将Ruby作为脚本语言嵌入C ++的最佳方法是什么? 使用ruby.h? 痛饮? 别的什么? 我需要的是将一些C ++对象暴露给Ruby并让Ruby解释器评估访问这些对象的脚本。 我不关心扩展Ruby或用C ++访问它。 我发现这篇文章是关于在C ++中嵌入Ruby的 ,虽然它非常有用,但它有点老了,我想知道是否有关于这个主题的任何其他资源(或类似引擎的开源实现)。

Ruby win32 api接口

我需要在ruby中访问win32库的一些函数。 我在网上找到了关于Win32API类的非常稀少的信息,所以我在这里问。 我知道你可以这样做: function = Win32API.new(‘user32′,’MessageBox’,[‘L’, ‘P’, ‘P’, ‘L’],’I’) 但我似乎无法使用当前的win32绑定调用此函数: http://msdn.microsoft.com/en-us/library/bb762108%28VS.85%29.aspx 问题在于它的原型: UINT_PTR SHAppBarMessage( DWORD dwMessage, PAPPBARDATA pData ); 我将能够使用win32 ruby​​绑定来获取返回类型和第一个参数,但是,第二个参数需要一个结构。 结构的定义如下: typedef struct _AppBarData { DWORD cbSize; HWND hWnd; UINT uCallbackMessage; UINT uEdge; RECT rc; LPARAM lParam; } APPBARDATA, *PAPPBARDATA; 我尝试使用两者来定义这个api方法: api = Win32API.new(‘shell32′,’SHAppBarMessage’,[‘L’, ‘L’, ‘L’, ‘L’, ‘L’, ‘L’, ‘L’, ‘L’, ‘L’],’I’) 和 api […]