- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
QtService
类有问题。我正在尝试构建一个 Windows 服务。我下载了 files并将它们包含到我的项目中。
现在,当我运行项目(在 QtCreator 中)时,我收到消息
The service MyService could not start.
start()
方法没有被执行。
我在 QtServiceBase::exec()
实现结束时在文件 qtservice.cpp 中找到了上面的消息。
你知道我为什么会收到这条消息吗?
myservice.h:
#ifndef MYSERVICE_H
#define MYSERVICE_H
#include <QtService/qtservice.h>
#include <QCoreApplication>
#include <QDebug>
#include <QObject>
class MyService : public QtService<QCoreApplication>
{
public:
MyService(int argc, char **argv);
~MyService();
void start();
void pause();
void resume();
void stop();
private:
};
#endif // MYSERVICE_H
我的服务.cpp:
#include "myservice.h"
MyService::MyService(int argc, char **argv) : QtService<QCoreApplication>(argc, argv, "MyService")
{
qDebug() << "CONSTRUCTOR";
setServiceDescription("This is my service. ");
setServiceFlags(QtServiceBase::CanBeSuspended);
qDebug() << "CONSTRUCTOR 1";
}
MyService::~MyService()
{
qDebug() << "DECONSTRUCTOR";
try {
} catch (...) {
qCritical() << "An unknown error occured in deconstructor";
}
}
void MyService::start()
{
qDebug() << "START";
try {
QCoreApplication *app = application();
qDebug() << "Service started";
qDebug() << app->applicationDirPath();
} catch (...) {
qCritical() << "An unknown error occured in start";
}
}
void MyService::pause()
{
qDebug() << "PAUSE";
try {
qDebug() << "Service paused";
} catch (...) {
qCritical() << "An unknown error occured in pause";
}
}
void MyService::resume()
{
qDebug() << "RESUME";
try {
qDebug() << "Service resumed";
} catch (...) {
qCritical() << "An unknown error occured in resume";
}
}
void MyService::stop()
{
qDebug() << "STOP";
try {
qDebug() << "Service stopped";
} catch (...) {
qCritical() << "An unknown error occured in stop";
}
}
main.cpp:
#include "myservice.h"
#include <QCoreApplication>
int main(int argc, char *argv[])
{
MyService service(argc, argv);
return service.exec();
}
和.pro
文件:
QT += core gui network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = ServiceTest
TEMPLATE = app
SOURCES += main.cpp\
myservice.cpp
HEADERS += myservice.h
include(QtService/qtservice.pri)
最佳答案
您是否已将参数 -exec
传递给服务? (单击“项目”,然后单击“运行设置”,然后填写参数字段)。
该服务希望作为服务运行,除非您传递告诉它作为应用程序运行的 -exec
参数(以便您可以调试它)。
其他命令行参数是-install
、-uninstall
、-pause
等。使用安装服务后-安装
然后您可以使用 Windows 管理工具运行它。
关于c++ - QtService 无法启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34017268/
我已经为 Windows 重新编译了带有集成 dbus 的 Qt。 此外,我还实现了一个 QtService 应用程序,它在系统总线上注册了一个服务和一个对象,如下所示: QDBusConnectio
QtService 类有问题。我正在尝试构建一个 Windows 服务。我下载了 files并将它们包含到我的项目中。 现在,当我运行项目(在 QtCreator 中)时,我收到消息 The serv
我使用 Skycoder42/QtService 编写了一个守护进程. 从 QtCteator 运行时它可以工作,但在服务器上,我收到以下错误 qtservice: No backend found
我可以通过 QtService 编写(Windows 或 Linux)服务吗?我认为 QtService 仅用于连接服务,而不是用于编写服务。是的 ?如果你有例子,请给我。 最佳答案 是的,这就是 Q
我是一名优秀的程序员,十分优秀!