【发布时间】:2014-11-19 11:20:37
【问题描述】:
我有一个在 C++ 头文件中声明的结构体:
struct AII_Common_Export message{
...
};
然后我尝试在 C++ 源文件中创建该结构的实例,以便我可以设置/使用存储在结构中的一些属性:
message data;
但是,当我编译我的代码时,我在这一行收到“未声明的标识符”错误...我已将头文件包含在源文件中,所以我不明白为什么会收到此错误 - 可以有人给我解释一下吗?
我还尝试使用以下方法创建它的实例:
AII_Common_Export message data;
但随后出现编译错误:“语法错误:缺少';'在标识符“数据”之前。
有什么想法可以解决这个问题,以便我可以创建结构的实例吗?
编辑
我刚刚找到了AII_Common_Export 定义——它的定义是:
# define AII_Common_Export ACE_Proper_Import_Flag
ACE_Proper_Import_Flag 定义为:
#define ACE_Proper_Import_Flag __declspec (dllimport)
这两个定义在不同的头文件中。
【问题讨论】:
-
@AdrianoRepetti 我认为这是对其他事物的定义
-
@MarcoA。很对! soneone2088,你是否包含了这样的标题?
-
@MarcoA。但这无论如何都不是正确的语法。
-
@OP:发布定义
AII_Common_Export的代码。 @Korbi 我没有说那是正确的,我只是猜测 -
@Korbi:这是不正确的。它不是标准的 C++,但许多编译器在 struct/class 和名称之间放置了导出指令。您通常使用宏来隐藏差异或在导入时重新定义它。你会期望 #define AII_Common_Export __declspec(dllexport) 或某种等效的地方 - OP 只需要确保定义也是可见的
标签: c++ struct undeclared-identifier