【问题标题】:How to create Qt GUI application from dll called by win32 console application?如何从 win32 控制台应用程序调用的 dll 创建 Qt GUI 应用程序?
【发布时间】:2013-06-19 06:08:54
【问题描述】:

(我的母语不是英语,如有语法错误,请见谅)

我是Qt新手,2天前开始,对WINAPI和MFC的经验很少。 我在想……

首先,从其 dll 创建 Qt GUI 应用程序 其次,我的静态库文件(*.lib) 将使用 QLibrary 调用这个 dll 文件。 最后,我的控制台应用程序将有它的 lib 和它的头文件,以及用于创建 Qt GUI 应用程序的 dll。

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

源代码如下: http://cfile239.uf.daum.net/attach/037B654151C4FF8D2D0EB7

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

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

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

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

是否有任何可能的方法来解决它,同时避免拥有 .pro 文件? 还是应该创建 .pro 并将其设置为具有 QT 库?

感谢您阅读。 :D

【问题讨论】:

标签: qt winapi user-interface mfc


【解决方案1】:

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

创建.h

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

创建.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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-09
    • 2010-11-04
    • 1970-01-01
    • 2016-01-31
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多