问题描述
环境:
- 框架: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和其他人的支持