Я хочу использовать класс, определенный в проекте MSVC, в проекте Qt.Я знаю, что мне нужно использовать компилятор Microsoft Visual Studio C ++ в Qt, чтобы получить доступ ко всем методам класса.Мне удалось импортировать библиотеку и так далее, но когда я пытаюсь создать экземпляр класса, определенного в библиотеке, моя программа падает, и я не могу понять, почему.Пример:
MyClass.h:
#ifdef MY_EXPORTS
#define MY_API __declspec(dllexport)
#else
#define MY_API __declspec(dllimport)
#endif
class MY_API MyClass {
public:
void myCoolMethod();
}
Я компилирую проект как MYPROJECT с MyClass как dll, а MSVC также создает файл * .lib. Поэтому я получаю MYPROJECT.lib и MYPROJECT.dll, которые я включаю в файл * .pro.файл Qt выглядит следующим образом:
LIBS + = -L "C: \ THEPATHTOTHELIB \" -lMYPROJECT
Теперь в main.cpp моего проекта Qt я хочу сделать:
#include <MyClass.h>
void main() {
....
MyClass *m = new MyClass();
m->myCoolMethod();
....
}
Но из окна вывода Qt я получаю следующее:
Запуск C: \ PATHBLA \ MYQTPROJECT.exe ...
C: \ PATHBLA \ MYQTPROJECT.exe закрыт, Возвращаемое значение -1073741515
Это означает, что мой проект Qt потерпел крах, и я не знаю почему.Когда я удаляю две строки в основной функции, то все работает нормально.И я не могу понять, почему.Когда я использовал компилятор mingw для включения DLL из других проектов, тогда все работало нормально.Так что, возможно, я что-то здесь упускаю при создании DLL в MSVC.Обычно это очень простая и простая работа, может быть, кто-то делал это раньше?
Я использую win32-msvc2010 для qmake.exe
jom.exe используется в качестве шага Make step
И я использую MSVC 2010 и Qt 4.8
Все dll, скомпилированные с MSVC 2010, скомпилированы с опцией debug
Спасибо всем за помощь!