如何将dll文件中的类从MSVC导入到Qt?

时间:2012-02-02 12:51:20

标签: qt visual-c++ dll compiler-construction import

我想在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

感谢大家的帮助!

0 个答案:

没有答案