2010-01-20 2 views
4

Я скомпилировал Qt для 64-битной архитектуры под окнами, и все работает отлично, за исключением QtScript. Следующий простой код, отлично работающий с 32-битным Qt for Windows, сработает, если скомпилирован с 64-битным Qt. Может быть, это ошибка в моем коде? Или Qt не совместим с 64-битным? Или что-то другое? Любые комментарии приветствуются.QtScript: сбой в 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(); 
    } 
} 
+0

Это ошибка, открытая на этой неделе (может быть даже вами =)). http://bugreports.qt.nokia.com/browse/QTBUG-7433 – Wildcat

+0

Открыто мной, но это не реакция от Trolls, но это ошибка или нет :(Насколько мне известно, потребуется несколько месяцев, чтобы " Оценить 'ошибку и принять какое-то решение. – grigoryvp

+0

Какая ошибка вы получили во время сбоя? – funwithcoding

ответ

3

Катастрофа происходит внутри JavaScriptCore, который является третьим компонентом участник из проекта WebKit (http://webkit.org/projects/javascript/index.html):

Visual Studio сообщает, что авария происходит на линии 641 C: \ Qt \ 4.6.1 \ src \ 3rdparty \ javascriptcore \ JavaScriptCore \ runtime \ JSObject.h и останавливается при вызове на адрес JSCell :: getOwnPropertySlot (JSCell.cpp: 126). Трассировка стека является:

QtScriptd4.dll QTJSC :: JSValue :: получить
QtScriptd4.dll QTJSC :: JSValue :: получить
QtScriptd4.dll QTJSC :: Переводчик :: privateExecute
QtScriptd4!!. DLL! QTJSC :: Переводчик :: Execute
QtScriptd4.dll! QTJSC :: Функция JsFunction :: звоните
QtScriptd4.dll! QTJSC :: звоните
QtScriptd4.dll! QScriptValue :: звоните
test.exe! главный

Существует множество предупреждений о возможны 64-разрядные проблемы при создании компонента WebKit в Windows с использованием компилятора Visual C++, поэтому я подозреваю, что это не конфигурация, которая поддерживается или была отлажена.

Я обновил отчет об ошибке QT QTBUG-7344.

Смежные вопросы