Venant d'un arrière-plan non C++, j'essaye de réécrire quelques projets en utilisant Qt. J'ai besoin de créer une bibliothèque partagée qui abritera des fonctions 'utilitaires' couramment utilisées. Je n'ai pas besoin d'une classe car toutes les fonctions seront statiques, donc je pensais créer un espace de noms qui contiendrait toutes les fonctions, mais accomplir ceci en utilisant le modèle de bibliothèque partagée fourni par Qt ne fonctionne pas. Est-ce possible? Si oui, quelqu'un peut-il me diriger dans la bonne direction? Par exemple, je veux prendre les fonctions Utils ci-dessous et les mettre dans une bibliothèque partagée pour que je n'aie pas à copier les fichiers dans tous les projets où je veux les utiliser.Qt - Bibliothèque partagée contenant des fonctions 'utilitaires'?
Utils.h
#ifndef UTILS_H
#define UTILS_H
#include <QtCore>
#include <QString>
#include <QDateTime>
#include <QFileInfo>
namespace Utils {
QString getAppName();
bool stringToBool(const QString &str);
QString getFileTimeStamp();
QString getPacketTime();
QString getTodayStamp();
}
#endif // UTILS_H
Utils.cpp
#include <Helpers/utils.h>
namespace Utils {
QString getAppName()
{
return QFileInfo(QCoreApplication::applicationFilePath()).baseName();
}
bool stringToBool(const QString &str)
{
return str.contains("1");
}
QString getFileTimeStamp()
{
return QDateTime::currentDateTime().toString("ddhhmmsszzz");
}
QString getPacketTime()
{
return QDateTime::currentDateTime().toString("hh:mm:ss");
}
QString getTodayStamp()
{
return QDateTime::currentDateTime().toString("MMddyy");
}
}
On ne sait pas pourquoi Qt est utilisé? Quelle partie de Qt sera utilisée dans cette bibliothèque? Quelle fonctionnalité ces fonctions de la bibliothèque dynamique implémentent? – AlexanderVX
Parce que Qt est le framework que j'utilise pour réécrire l'application et j'essaie d'utiliser l'assistant de bibliothèque partagée dans l'EDI Qt Creator. – DonJoe
Je vois que vous avez ajouté du code à la question. Très simpliste. 1. Il y aura une dépendance de Qt elle-même. 2. Si elle ne sera pas utilisée par plus d'une application, je n'essayerais même pas de créer une bibliothèque dynamique avec Qt. 3. Si elle sera utilisée par de nombreuses applications indépendantes mais fabriquées avec la même version de Qt, il y a une raison de faire de la bibliothèque dynamique, si elle est assez grande et complexe pour satisfaire tout le travail. S'il n'est utilisé que par une seule application, vous n'avez pas besoin de bibliothèque dynamique. Le wiki pour vous: https://wiki.qt.io/How_to_create_a_library_with_Qt_and_use_it_in_an_application – AlexanderVX