私はまだうまくいきません。尋ねられた質問のいくつかに答えましょう:
1) Windows は依存関係の読み込みに失敗していません。Dependency Walker がすべて問題ないことを示しているためだと思います。2) MatrixWorkset.dll を読み込もうとすると、基本的に次のように出力するデバッガーをアタッチしました。
10:04:19.234
stdout:&"警告: D:/ScinericSoftware/VisualWorkspace/trunk/Targets/bin/MatrixWorkset.dll からコンポーネントをロードしています\n"
10:04:19.234
stdout:&"\n"
status:Stopped: "signal-received"
状態:停止中。
10:04:19.890
stdout:30*stopped,reason="signal-received",signal-name="SIGSEGV",signal-meaning="Segmentation fault",thread-id="1",frame={addr="0x7c919994",func= "tolower",args=[],from="C:\\WINDOWS\\system32\\ntdll.dll"}
入力:31情報共有
入力: 32-スタック リスト引数 2 0 0
input:33-stack-list-locals 2
入力: 34 スタック リスト フレーム
入力:35 スレッド リスト ID
入力:36 データリストレジスタ値 x
10:04:19.890
3) MSalters: 「クラス タイプを持つグローバル」とはどういう意味かわかりません。問題を引き起こしているファイルは別の DLL に含まれており、正常に動作し、DLL は正常にロードされました。
これは、MatrixVariable.h ファイルの先頭です。
#include "QtSF/Variable.h" // 依存する DLL (このファイルが常に存在する DLL.
#include "Matrix.h" // この DLL にあるファイル
#include "QList" // これらはすべて Qt フレームワークのファイルです
#include "QModelIndex"
#include "QItemSelection"
#include "QObject"
名前空間 Zenautics を使用します。
名前空間 std を使用します。
class MatrixVariable : public 変数
{
Q_OBJECT
Q_PROPERTY(int RowCount READ rowCount WRITE setRowCount)
Q_PROPERTY(int ColumnCount READ columnCount WRITE setColumnCount)
Q_PROPERTY(int UndoPoints READ undoPoints WRITE setUndoPoints)
公衆:
//! デフォルトのコンストラクタ。
MatrixVariable(const QString& name, int rows, int cols, double fill_real = 0, double fill_complex = 0, bool isReal = true);
等等等
考えられる解決策は、MatrixVariable ファイルを元の DLL に戻すことですが、実際にはオプションではない DLL を小さな部分に分割するという考え全体が無効になります。