비 C++ 배경에서 오는 Qt를 사용하여 몇 가지 프로젝트를 다시 작성하려고합니다. 공통적으로 사용되는 '유틸리티'기능을 갖춘 공유 라이브러리를 만들어야합니다. 모든 기능이 정적 일 것이므로 클래스를 필요로하지 않습니다. 따라서 모든 기능을 포함하는 네임 스페이스를 만드는 것이 내 생각이지만 Qt를 사용하여 공유 라이브러리 템플릿이 작동하지 않습니다. 이것이 가능한가? 그렇다면, 누군가 올바른 방향으로 나를 가리켜 주시겠습니까?Qt - '유틸리티'기능이 포함 된 공유 라이브러리?
예를 들어 Utils 함수를 가져 와서 공유 라이브러리에 저장하여 파일을 사용하려는 모든 프로젝트에 복사 할 필요가 없습니다.
는 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");
}
}
Qt가 왜 사용되는지 확실하지 않습니까? 해당 라이브러리에서 Qt의 어떤 부분이 사용될 것입니까? 동적 라이브러리의 이러한 기능이 구현하는 기능은 무엇입니까? – AlexanderVX
Qt는 내가 애플 리케이션을 다시 쓰는데 사용하고 Qt Creator IDE 내에서 공유 라이브러리 마법사를 사용하려고하는 프레임 워크이기 때문에. – DonJoe
질문에 코드를 추가했습니다. 매우 단순합니다. 1. Qt 자체에 의존하게 될 것입니다. 2. 하나 이상의 응용 프로그램에서 사용하지 않으면 Qt로 동적 라이브러리를 만들지 않습니다. 3. 많은 독립적 인 응용 프로그램에서 사용되지만 동일한 Qt 버전으로 만들어진 경우 동적 라이브러리를 수행해야하는 이유가 있습니다. 모든 작업을 만족시킬 정도로 복잡하고 크기가 커야합니다. 하나의 앱에서만 사용하게되면 동적 라이브러리가 필요하지 않습니다. 당신을위한 위키 : https://wiki.qt.io/How_to_create_a_library_with_Qt_and_use_it_in_an_application – AlexanderVX