- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我已经在 Windows 下为 64 位架构编译了 Qt,除了 QtScript 之外,其他都运行良好。以下简单代码,与 32 位 Qt for Windows 完美配合,如果使用 64 位 Qt 编译会崩溃。也许这是我的代码中的错误?或者Qt不兼容64位?或者是其他东西?欢迎任何评论。
#include <QtCore/QCoreApplication>
#include <QScriptEngine>
int main(int argc, char *argv[])
{
QCoreApplication app( argc, argv);
QScriptEngine oEngine;
oEngine.evaluate( "function foo(){var a=[[0]]; a[0][0];}" );
for(;;)
{
oEngine.evaluate( "foo" ).call();
}
}
最佳答案
崩溃发生在 JavaScriptCore 内部,它是 WebKit 项目 ( http://webkit.org/projects/javascript/index.html ) 的第 3 方组件:
Visual Studio 报告崩溃发生在 c:\Qt\4.6.1\src\3rdparty\javascriptcore\JavaScriptCore\runtime\JSObject.h 的第 641 行,并在调用 JSCell::getOwnPropertySlot (JSCell .cpp:126)。堆栈跟踪是:
QtScriptd4.dll!QTJSC::JSValue::get
QtScriptd4.dll!QTJSC::JSValue::get
QtScriptd4.dll!QTJSC::Interpreter::privateExecute
QtScriptd4.dll!QTJSC::Interpreter::execute
QtScriptd4.dll!QTJSC::JSFunction::call
QtScriptd4.dll!QTJSC::call
QtScriptd4.dll!QScriptValue::call
测试.exe!main
在使用 Visual C++ 编译器在 Windows 上构建 WebKit 组件时,有很多关于可能的 64 位问题的警告,因此我怀疑它不是受支持或尚未调试的配置。
我已经更新了 QT 错误报告 QTBUG-7344 .
关于windows - QtScript:在 64 位 Windows 上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2104561/
现在我可以使用 QScriptEngine 来加载和执行 test.js 文件。在那个 test.js 的函数之一中,我想调用位于另一个 .js 文件中的另一个函数。我该怎么做? 最佳答案 要从多个文
QScriptEngine有evaluate()方法,可用于加载脚本、执行脚本以及从已加载的脚本运行指定的函数。但是如何清除当前脚本并加载新脚本呢?例如,我使用评估()从文件加载脚本,然后使用评估()
我正在使用 Qt5,并尝试学习如何使应用程序可编写脚本。 为此,我创建了一个包含一些文本编辑、标签等的主窗口。然后我添加了一个名为“脚本控制台”的选项”到该表单的菜单,以便我打开第二个表单,其中仅包含
我想从 QtScript 脚本运行多个并发作业: function job1() { ... } function job2() { ... } runConcurrentJobs(job1, job
当我调用这段代码时: QScriptEngine e; e.evaluate("print('hello, world!')"); 输出文本(来自 print 方法)被写入主应用程序的终端。 有什么方
我知道有一些工具可以分析纯 javascript 代码,例如 firebug 和 Chrome 的开发者工具,但我想知道是否有任何好的工具来分析 QTScript。或者我如何使用这些工具来分析 QtS
问题 我正在制作一个使用 Q_OBJECT 和 Q_PROPERTY 从脚本访问一些对象的项目。我有两个问题: 使使用前向声明的类可编写脚本 返回一个属性作为指针 说明 1. 为什么要提前申报? 类
解决方案可能很简单。话又说回来,这可能是不可能的。 我有基础回调类: class CFCallback { int command_; int transfer_rate_;
我遇到了以下错误 "TypeError: cannot call sayHello(): argument 2 has unknown type `QString&' (register the ty
我必须在 C++ 应用程序中运行一系列 javascript“脚本”。其中大部分是重复 Action 。代码示例 here . 我知道 Qt,因为第 5 版包含 2 个 javascript 引擎:Q
QtScript 是否支持内省(introspection)/反射(例如,像 python 的 dir() 一样),使我能够通过在运行时探索对象模型来从内部“映射”API? 最佳答案 你真的应该更多地
我正在学习 QtScript 并写了几个简单的例子。如果我将参数限制为简单类型,则映射很简单。 我现在希望能够将可变数量的参数从 QtScript 传递到 C++ 类,例如 Myobject.add(
函数 qScriptValueFromSequence 允许我从 QObjectList 在 QtScript 中创建一个数组,当我在脚本中修改 QObject 属性时,QObject 属性会发生变化
我通过创建派生的 QThread 类使我的应用程序可编写脚本,我在其中添加多个 QObject 类以便通过命令行访问它们的功能。 void commandLine::addObject(QObject
我已经编写了一个自定义类,它可以通过原型(prototype)在 QtScript 中使用。还有另一个全局类可用,它应该用于打印在 QtScript 中生成的自定义类。 这是我的自定义类(非常简单;)
有谁知道是否有可能拥有一个带有重载运算符(如 +、-、*)的 C++ 类,并以某种方式(这就是魔法发生的地方)向 QtScriptEngine 声明它,以便像 "a+b 这样的 js 表达式"是否像在
我在我的应用程序中使用 Qt 脚本引擎作为用户访问其功能的替代方式。因此,我将一些 C++ 类导出到 Qt ScriptEngine,它将作为应用程序的接口(interface)。问题是,这些 C++
我正在使用 QtScript 来自动化我的应用程序的某些部分以用于开发和测试目的。我已经到了要测试断言的地步,并且基于 "standalone assertion libraries?"以及我在 De
我试图找出如何在 QtScript 中使用复数,以便可以从 QtScript 调用用复数参数定义的槽。用户还应该可以从脚本访问复数的基本代数(+、-、exp、...)。 只是为了说明,我想调用的是:
我已经在 Windows 下为 64 位架构编译了 Qt,除了 QtScript 之外,其他都运行良好。以下简单代码,与 32 位 Qt for Windows 完美配合,如果使用 64 位 Qt 编
我是一名优秀的程序员,十分优秀!