如何从win32控制台应用程序调用的dll创建Qt GUI应用程序?

时间:2013-06-22 01:56:46

标签: qt winapi user-interface mfc

(我不是英国人,所以如果我犯了任何语法错误就很抱歉)

我是Qt的新手,2天前开始,只有很少的WINAPI和MFC经验。 我在考虑......

首先,从其dll创建Qt GUI应用程序 其次,我的静态库文件(* .lib)将使用QLibrary调用此dll文件。 最后,我的控制台应用程序将拥有其lib及其头文件,并且dll将创建Qt GUI Application。

我的控制台应用程序没有.pro文件,只是在visual studio上创建的,只有.vcproj和.sln文件。

这是源代码: http://cfile239.uf.daum.net/attach/037B654151C4FF8D2D0EB7

我将dll,lib及其头文件复制到win32控制台应用程序中。 当我编译控制台时,我收到此错误消息。

致命错误C1083:无法打开包含文件:'QApplication':没有此类文件或目录

我知道这是绝对正确的。 (因为我的lib使用QLibrary,它的lib和头文件包含在win32控制台应用程序中..)

好吧,实际上我不想将包含QApplication类的.pro文件放到我的控制台应用程序中来解决这个问题。

是否有任何可能的方法来修复它,同时避免使用.pro文件? 或者我应该创建.pro并将其设置为具有QT库吗?

感谢您阅读。 :d

1 个答案:

答案 0 :(得分:0)

您应该指明编译器Qt的路径。 如果您使用vs,请选择tools-> option->项目和解决方案,VC ++目录,设置您的Qt头文件路径,lib路径,bin路径,并将Qt的bin路径设置为环境变量PATH。 在静态库项目中,试试这个:

create.h

#pragma once
void createQt(int argc, char* argv[]);

create.cpp

#include<QtGui/QWidget>
#include<QtGui/QApplication>
#include "create.h"
#pragma  comment(lib,"qtguid4.lib")
void createQt(int argc, char* argv[])
{
QApplication app(argc,argv);

QWidget w;
w.show();
app.exec();
};

在你的控制台程序中:

.cpp文件:

 #include "stdafx.h"
 #include "create.h"
#pragma comment(lib,"CreaeQt.lib")

int main(int argc, char* argv[])
{

createQt(argc,argv);

return 0;
}