我想在Qt项目中使用在MSVC项目中定义的类。 我知道我必须在Qt中使用Microsoft Visual Studio C ++编译器才能 访问类的所有方法。我已经设法导入了库等等,但是当我尝试实例化库中定义的类时,我的程序崩溃了,我无法弄清楚原因。 例如:
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 我将文件包含在Qt的* .pro文件中,如下所示:
LIBS + = -L“C:\ THEPATHTOTHELIB \”-lMYPROJECT
现在在我的Qt项目的main.cpp中我要做:
#include <MyClass.h>
void main() {
....
MyClass *m = new MyClass();
m->myCoolMethod();
....
}
但我从Qt输出窗口得到的是:
启动C:\ PATHBLA \ MYQTPROJECT.exe ...
C:\ PATHBLA \ MYQTPROJECT.exe已关闭,返回值-1073741515
这意味着我的Qt项目崩溃了,我不知道为什么。 当我删除main函数中的两行时,一切正常。 我无法弄清楚原因。当我使用mingw编译器来包含dll时 其他项目然后一切正常。也许我错过了一些东西 这里在MSVC中创建dll时。 这通常是一个非常直接和容易的工作,也许有人这样做 前?
我正在使用win32-msvc2010 for qmake.exe
jom.exe用作Make步骤
我正在使用MSVC 2010和Qt 4.8
使用选项debug
编译使用MSVC 2010编译的所有dll感谢大家的帮助!