Я все еще не понимаю. Позвольте мне ответить на некоторые из заданных вопросов:
1) Windows не перестает загружать зависимости, я думаю, поскольку Dependency Walker показывает, что все в порядке
2) Я подключил отладчик, который в основном печатает следующее при попытке загрузить MatrixWorkset.dll:
10:04:19.234
stdout:&"warning: Loading components from D:/ScinericSoftware/VisualWorkspace/trunk/Targets/bin/MatrixWorkset.dll\n"
10:04:19.234
stdout:&"\n"
status:Stopped: "signal-received"
status:Stopped.
10:04:19.890
stdout:30*stopped,reason="signal-received",signal-name="SIGSEGV",signal-meaning="Segmentation fault",thread-id="1",frame={addr="0x7c919994",func="towlower",args=[],from="C:\\WINDOWS\\system32\\ntdll.dll"}
input:31info shared
input:32-stack-list-arguments 2 0 0
input:33-stack-list-locals 2
input:34-stack-list-frames
input:35-thread-list-ids
input:36-data-list-register-values x
10:04:19.890
3) MSalters: Я не уверен, что вы имеете в виду под «глобальным типом класса». Файл, который вызывает проблемы, был включен в другую DLL, в которой он работал нормально, и DLL успешно загружена.
Это верх файла MatrixVariable.h:
#include "QtSF/Variable.h" // Located in depending DLL (the DLL in which this file always lived.
#include "Matrix.h" // File located in this DLL
#include "QList" // These are all files from the Qt Framework
#include "QModelIndex"
#include "QItemSelection"
#include "QObject"
using namespace Zenautics;
using namespace std;
class MatrixVariable : public Variable
{
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)
public:
//! Default constructor.
MatrixVariable(const QString& name, int rows, int cols, double fill_real = 0, double fill_complex = 0, bool isReal = true);
и т.д.. и т. д.
Возможное решение состоит в том, чтобы поместить файл MatrixVariable обратно в исходную DLL, но это разрушает саму идею разделения DLL на более мелкие части, что на самом деле не вариант.