如何解决Q_DECLARE_INTERFACE用于创建插件会引发错误
环境:
- 框架:Qt 5.12.9
- 编译器:MSVC 15.9.28307.1234(x64)
- 调试器:CDB 10.017763.132(x64)
- 标准:C ++ 11
- 编辑器:Qt Creator 4.12.2
- 操作系统:Win10 Enterprise 1809
我想开发一个可以通过插件扩展的应用程序。因此,我创建了一个标准库项目,我想在其中定义插件接口。然后,该库应由主应用程序及其插件使用。
我在官方网站上阅读了有关Qt插件系统的信息,并希望通过duckduckgoing获得帮助,但我仍然遇到以下错误:
- vccplugin.h:16:32:错误:预期参数声明符 vccplugin.h:14:23:注意:从宏“ VccPlugin_iid”扩展
- vccplugin.h:16:32:错误:预期为')' vccplugin.h:14:23:注意:从宏'VccPlugin_iid'扩展 vccplugin.h:16:20:注意:要匹配此'('
- vccplugin.h:16:1:错误:C ++要求所有声明都使用类型说明符
- 内部版本问题:C2059:语法错误:“字符串”
这是代码:
#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方面经验不足。
非常感谢您的帮助, 谢谢
解决方法
我发现了问题。问题是编译器找不到宏,所以我只需要添加:
#include <QtPlugin>
由于Q_DECLARE_INTERFACE是在QtPlugin中定义的。您的示例未导入QtPlugin,但可能是由另一个导入(可能是QMainWindow)隐式导入的。
如果我遇到类似“如果找不到符号Q_DECLARE_INTERFACE”的错误,那会更简单。尤其是因为我在这个话题上比较沮丧。
感谢您对@NgocMinhNguyen和其他人的支持
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。