windows – 如何为非Qt应用程序创建Qt共享库
发布时间:2020-07-16 08:08:45 所属栏目:Windows 来源:互联网
导读:我开发了一个具有Qt共享库和Qt应用程序的应用程序. Qt共享库导出单个类,其中包含很少的信号.我为此使用了Q_DECL_EXPORT / Q_DECL_IMPORT宏.现在,dll和应用程序之间的通信是通过Qt信号和插槽进行的,需要使用QObject开发应用程序. 现在我被要求将Qt共享库作为理
|
我开发了一个具有Qt共享库和Qt应用程序的应用程序. Qt共享库导出单个类,其中包含很少的信号.我为此使用了Q_DECL_EXPORT / Q_DECL_IMPORT宏.现在,dll和应用程序之间的通信是通过Qt信号和插槽进行的,需要使用QObject开发应用程序. 现在我被要求将Qt共享库作为理想的DLL,其中客户端应用程序不依赖于Qt框架. 我看到以下帖子但是Using a Qt-based DLL in a non-Qt application但不确定这是否是最好的方法. 请问有人可以选择开发用于非Qt应用程序的Qt共享库. 您可以在库中的新线程中创建QCoreApplication的实例.你应该检查只创建它的一个实例,那是因为每个Qt应用程序应该只包含一个QCoreApplication.所以你的图书馆可以像: class Q_DECL_EXPORT SharedLibrary :public QObject
{
Q_OBJECT
public:
SharedLibrary();
private slots:
void onStarted();
private:
static int argc = 1;
static char * argv[] = {"SharedLibrary",NULL};
static QCoreApplication * app = NULL;
static QThread * thread = NULL;
};
SharedLibrary::SharedLibrary()
{
if (thread == NULL)
{
thread = new QThread();
connect(thread,SIGNAL(started()),this,SLOT(onStarted()),Qt::DirectConnection);
thread->start();
}
}
SharedLibrary::onStarted()
{
if (QCoreApplication::instance() == NULL)
{
app = new QCoreApplication(argc,argv);
app->exec();
}
}
这样,即使在非Qt应用程序中,您也可以使用Qt共享库. (编辑:日照站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何在东芝笔记本电脑和Windows 7上使用python进行文本到语
- Windows上Jenkins的git插件不使用带子模块的凭据
- windows 安装 jdk 7和8
- 同步域内时间方法一:net time
- window python2.7 ImportError: No module named MySQLdb
- 2018-5-26 怎么在windows上远程连接linux服务器上的mysql
- adodb – Windows脚本宿主(jscript):我如何下载二进制文件
- Win10 将应用程序exe放到开始屏幕
- row_number()在hql中的分区
- 1.19 使用XCActionController创建Twitter/Youtube/Skype/Sp
推荐文章
站长推荐
- windows – RegSvr32退出代码文档?
- 使用dll和java jni4net时出现UnsatisfiedLinkErr
- WPF:xaml中的权力
- Microsoft Unit Testing Framework for C++
- ms-office – Microsoft Office 2010功能区自定义
- Win10 将应用程序exe放到开始屏幕
- windows-server-2008 – IIS可以从GPU核心创建线
- libglog.dll CMake 在Windows上编译、应用glog
- Win10 安装TensorFlow tflearn
- windows-8 – 在Windows 8上禁用了DirectX控制面
热点阅读
