【发布时间】:2020-10-21 07:48:17
【问题描述】:
环境:
- 框架:Qt 5.12.9
- 编译器:MSVC 15.9.28307.1234 (x64)
- 调试器:CDB 10.017763.132 (x64)
- 标准:C++11
- 编辑器:Qt Creator 4.12.2
- 操作系统:Win10 企业版 1809
我想开发一个可以通过插件扩展的应用程序。因此,我创建了一个标准库项目,我想在其中定义插件接口。然后这个库应该被主应用程序及其插件使用。
我在官方网站上阅读了Qt插件系统并通过duckduckgo-ing寻求帮助,但我遇到了以下错误:
- 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 方面都没有什么经验。
非常感谢任何帮助, 谢谢
【问题讨论】:
-
我试图通过在 MainWindow 声明之前将您的代码复制粘贴到一个空项目来重新创建问题,但我没有看到它。我正在使用 Qt 5.12.8 MinGW 7.3 32 位。
-
@NgocMinhNguyen 可能与 msvc 编译器有关吗?我不想安装 mingw,因为它看起来很麻烦,而且我已经有了 Visual Studio...
-
你可以尝试做同样的事情,创建一个最小的例子。看看问题是否仍然存在。像这样pastebin.com/bKqkspgK.
-
奇怪,您的示例使用我的相同套件,我不再有错误。我的项目文件应该有问题吗?见pastebin.com/idMH5YTH
-
我没有发现问题。由于你的项目足够小,我建议将可疑部分一一注释掉,直到你能确定代码的哪一部分是罪魁祸首