首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于插件创建的Q_DECLARE_INTERFACE到处抛出错误。

用于插件创建的Q_DECLARE_INTERFACE到处抛出错误。
EN

Stack Overflow用户
提问于 2020-10-21 07:48:17
回答 1查看 102关注 0票数 0

环境:

Qt 5.12.9

  • Compiler: MSVC 15.9.28307.1234 (x64)

  • Debugger: CDB 10.017763.132 (x64)

  • Standard: C++11

  • 编辑器:Framework 4.12.2

  • OS: Win10 Enterprise1809

我想开发一个可以通过插件扩展的应用程序。因此,我创建了一个标准库项目,在这里我要定义插件接口。然后,这个库应该由主应用程序及其插件使用。

我在官方网站上阅读了Qt插件系统,并寻求duckduckgo的帮助,但我被以下错误困住了:

  • vccplugin.h:16:32:错误:预期参数声明器vccplugin.h:14:23:注意:从宏'VccPlugin_iid'
  • vccplugin.h:16:32:错误:预期‘展开: vccplugin.h:14:23:注意:从宏'VccPlugin_iid’扩展:注意:要匹配这个'('
  • vccplugin.h:16:1:错误: C++需要一个类型说明符来处理所有的declarations
  • Build问题: C2059:语法错误:'string'

这是代码:

代码语言:javascript
复制
#ifndef VCCPLUGIN_H
#define VCCPLUGIN_H

#include "VccPluginInterface_global.h"

class VCCPLUGININTERFACE_EXPORT VccPlugin
{
public:
    VccPlugin();
    ~VccPlugin();
    void DoeEenTwuk();
};

#define VccPlugin_iid "automation.general.vcc.interface"

Q_DECLARE_INTERFACE(VccPlugin, VccPlugin_iid);

#endif // VCCPLUGIN_H

还要注意,我在C++和Qt方面都没有什么经验。

任何帮助都非常感谢,谢谢

EN

Stack Overflow用户

回答已采纳

发布于 2020-10-21 13:47:29

我发现了这个问题。问题是编译器找不到宏,所以我要添加的就是:

代码语言:javascript
复制
#include <QtPlugin>

因为Q_DECLARE_INTERFACE是在QtPlugin中定义的。您的示例没有导入QtPlugin,但可能是由另一个导入(可能是QMainWindow )隐式导入的。

如果你问我“找不到符号Q_DECLARE_INTERFACE”这样的错误,那就更简单了。尤其是在这个话题上我很忧郁。

谢谢你的支持@NgocMinhNguyen和其他人

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64458960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档