【发布时间】:2021-01-22 20:56:27
【问题描述】:
抱歉,这似乎是一个初学者问题,但我似乎无法为我的 C++ 库找到最佳方法。我已经构建了一个静态库,其中包含驱动程序 API 处理代码。目前,为了在软件的更高层(带有 GUI 的简单应用程序)中使用它,我需要将库链接到项目并创建该库中存在的类的新实例以访问其所有公共方法.当创建此类的新实例时,将初始化代码工作所需的所有必要对象。我想跳过实例化步骤,让潜在用户仅通过在他们的代码中包含库来使其工作。为了更好地描绘这一点,这里有一个代码示例:
我目前拥有的:
#include "myLibrary.h"
// Some GUI code here
MyLibrary *mLib;
mLib = new MyLibrary;
// Using the library methods
mLib->startProcess();
我想要什么:
#include "myLibrary.h"
MyLibrary::startProcess();
我在 Qt Creator 中工作,但不介意迁移到不同的 IDE(Visual Studio 也可以)。我在这个项目中的文件是:
- MyLibrary.h(声明)
- MyLibrary_global.h(由 Qt Creator 创建的包含列表和导出设置)
- MyLibrary.cpp(实现)
任何帮助将不胜感激。如果需要进一步澄清我的问题,我将编辑此问题以使其清楚。
编辑:在深入研究驱动程序 API 文档后,我发现它的实现方式需要我创建 MyLibrary 类的实例。我从下面的 cmets 获得了很多知识,并将单例响应标记为有效,因为如果可能的话,这将是我继续进行的方式。
【问题讨论】:
-
您的教科书、教程或课程是否提到了静态成员函数?
-
不相关,但在这种情况下使用指针和
new似乎没有任何作用。只需MyLibrary myLib; myLib.startProcess();。 -
一开始就有上课的理由吗?
-
嗯...这不就是你梦想场景中的命名空间语法吗?
-
@AlexanderMayer
namespace的“问题”是任何人都可以向他们添加成员。
标签: c++ dependencies qt-creator project