查看完整版本: [-- 提供接口的时候能否只提供一个头文件而不用提供lib库 --]

QTCN开发网 -> Qt基础编程 -> 提供接口的时候能否只提供一个头文件而不用提供lib库 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

ninsun 2017-01-18 11:05

提供接口的时候能否只提供一个头文件而不用提供lib库

一般情况下,我们在设计C++接口的时候,并不需要提供lib库的,例如以下的最简单的接口定义:
  1. class WEBAPPSERVER_EXPORT ServiceInterface
    {
    public:
    virtual QString name() = 0;
    }
但是,当我们让这个接口继承了某个类,并且该接口并不是纯虚的时候……情况似乎就不一样了……
  1. class WEBAPPSERVER_EXPORT ServiceInterface : public QObject
    {
      Q_OBJECT
    public:
      virtual QString name() = 0;
    }

为了使用qobject_cast或Qt的元信息则必须有Q_OBJECT宏。
那么在这种情况下,如果不提供lib库并在实现该接口的工程中包含该lib,就会在编译的时候就会报错……
那么,有没有办法避免这种情况?如果继承的类是我自己写的也就罢了,但是我继承的是QObject啊……

firebolt 2017-01-18 18:19
如果不想提供lib,那就需要提供一个与平台无关的接口,其实你可以在你的上层应用做个模板适配器,把底层接口转换成你需要的类型。


查看完整版本: [-- 提供接口的时候能否只提供一个头文件而不用提供lib库 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled