4

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();
  }
}
4

1 に答える 1

3

クラッシュは、WebKitプロジェクトのサードパーティコンポーネントであるJavaScriptCore内で発生しています(http://webkit.org/projects/javascript/index.html):

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
test.exe!main

Visual C ++コンパイラを使用してWindowsでWebKitコンポーネントをビルドするときに発生する可能性のある64ビットの問題について多くの警告があるため、サポートされているか、まだデバッグされている構成ではないと思われます。

QTバグレポートQTBUG-7344を更新しました。

于 2010-01-27T16:42:24.727 に答える