问题标签 [chaiscript]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 通过用户类型对象为 Chaiscript 变量赋值会产生意外行为
我对 C++ 和 Chaiscript 有一个特殊的问题,希望有人可以帮助我解决它,我会尽量提供所需的信息。
基本上,通过 chaiscript 调用在 c++ 中定义的 c++ 函数,它返回一个 Vector2 对象(用户类型对象),当我尝试直接从 Vector2 的成员变量(x 或 y)获取值时,将返回疯狂的值。如果我将整个 Vector2 分配给一个变量,它将按预期工作,访问成员变量将为我提供预期值。
我设法用尽可能少的代码重现了这个问题,摆脱了物理引擎和我正在使用的所有其他东西。
这是C++代码:
这是脚本:
此代码将重现以下内容:6.52556e-38 10
每次我运行代码时,getValue().x (6.52556e-38) 中的这个值实际上是不同的,但它通常会是 1.f~8.f 之间的某个疯狂值,它会变为指数 -36~-38。
我可以通过使用“var something = getValue()”,然后访问“something.x”来解决这个问题,但是了解为什么会发生这种情况以及如何修复它会很有帮助。
c++ - Mac / c++ 上的 ChaiScript std lib 在运行时寻找 dll
我正在尝试将 ChaiScript 集成到我的小型 Mac / c++ 项目中。虽然我可以通过构建 chaiscript_stdlib.hpp / 使用 ChaiScript chai(Std_Lib.library()) 来很好地使用它,但我真的很想单独构建这个库。
然而,在构建 dylib,确保安装路径/名称指向正确的位置,并用它构建我的项目之后,我总是会遇到一个运行时错误,它找不到 .dll ...不用说我很困惑至于为什么它甚至会在mac上寻找一个dll,但有人可以分享我做错了什么吗?
干杯!
PS:为了更加清楚,错误不是关于定位 .dylib (如果我不复制可执行路径中的 lib,它将首先出现),但是在运行时加载 dylib 后它抱怨它找不到 .dylib。 dll
c++ - 是否可以在 ChaiScript 执行中添加断点?
ChaiScript是否支持类似调试器的行为?例如,我可以设置执行暂停的断点,并允许我在恢复之前检查堆栈吗?如果是这样,怎么做?
c++ - Chaiscript #include statement mapping in biicode.conf
I want to create a biicode block that depends on the chaiscript block (lefticus/ChaiScript). If I include the chaiscript headers this way
bii find
works fine. But I would like to include them as
so I changed my biicode.conf
such as this :
but then I got
How do I have to configure biicode to make it work with the "classic" chaiscript includes ?
Thanks
c++ - 使用 Chaiscript 的协程或有状态/可恢复任务
我Chaiscript
想让我的应用程序的用户使用脚本语言来实现任务或有状态算法。这些算法“取决于时间中的事件”。换句话说,应该允许由应用程序调度的算法yield
在任何时候以及resume
只要他们感兴趣的事件发生(在这种情况下任务被重新调度以恢复)执行。Chaiscript
为实现这一目标提供了什么样的支持?
wstring - ChaiScript 中的 std::wstring
我是 ChaiScript 的初学者。
我尝试std::wstring
在 ChaiScript 中使用类型。
std::string 类型效果很好。
std::wstring
类型引发异常。
D:\TestWork\test_chaiscript>t2.exe
在抛出 'chaiscript::exception::eval_error'
what() 的实例后调用终止:错误:“找不到合适的 '==' 运算符。” 带参数:(NSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE, const string)此应用程序已请求运行时以不寻常的方式终止它。
请联系应用程序的支持团队以获取更多信息。
使用 ChaiScript git 版本和 mingw-w64 构建 5.1.0。
vs2013也是一样。
如何std::wstring
在 ChaiScript 中使用类型?
wstring - 比较 std::wstring 类型和 ChaiScript 中 wstring 文字的表示
我想使用 std::wstring 类型编写 ChaiScript 代码,如下面的 c++ 代码。
比较 std::wstring 类型的实例很好。
比较 wchar_t 类型的实例不起作用。
是否必须添加比较运算符方法?
将 std::wstring 类型的实例与字符串类型的文字进行比较是行不通的。我无法输入 wstring 类型的文字。
是否可以在 ChaiScript 中输入 wstring 类型的文字?
将 wchar_t 类型的实例与 wchar_t 类型的文字进行比较是行不通的。我无法输入 wchat_t 类型的文字。
是否可以在 ChaiScript 中输入 wchat_t 类型的文字?
c++ - 如何访问脚本中定义的类型的成员?
我正在尝试从我在脚本中定义的类型中访问 C++ 文件成员。问题是Boxed_Value::get_attr
总是返回一个空值。
这是我的 C++ 文件:
和script.chai:
我希望它打印30,但它却抛出了bad_boxed_cast
异常。在我的投资过程中,我发现这number.is_null()
是真的。我显然做错了什么,但我找不到我的错误。
或者也许它不打算以这种方式使用?
c++ - 如何检查 chaiscript 中是否定义了函数以及如何使用类型化参数执行它?
我刚刚发现了 chaiscript,我非常喜欢它。现在我想添加对我非常简单的 opengl 3d 引擎的支持。
我有 C++ 数学类:vec2T、vec3T、vec4T、mat2T、mat3T、mat4T、...(它们实际上是模板类,并且有 typedef 使它们成为 vec4i、vec4f、vec4d、...)
我想我可以将它们添加到 chaiscript 中:
正确的?
现在,我想测试我的脚本是否包含一个名为“onFrame”的函数。如果是,我希望使用 vec4i 参数作为其第一个参数来调用它。我该怎么做呢?
我知道我可以做这样的事情:
如果脚本中未定义 onFrame,则这种方式将忽略异常。我什至可以通过这种方式传递一些整数或字符串参数。但是我如何继续将 vec4(x, y, z, w) 参数传递给它?
任何帮助表示赞赏!
chaiscript - ChaiScript:从内存中加载预处理的脚本文件
在 ChaiScript 中,有一个 .use() 函数,它接受文件路径并加载文件并使脚本中的每个函数和变量都可用。如果您想从磁盘中获取文件,这是一个很棒的功能,但是我希望从已加载、预处理为字符串并存储在内存中的文件中执行相同的操作。几乎等同于 .use 函数,它采用一个代表整个脚本的字符串,而不仅仅是一个路径。
这有可能吗?