• 全部
...

很奇怪不能在头文件里声明结构体么? 在线等

wanglovec 2013-12-25 11:11:51
在.h中 这样声明
#pragma once

struct mystruct
{
int a;
int b;
};

报错 :
error C2143: syntax error : missing ';' before '<class-head>'
fatal error C1004: unexpected end of file found

求帮助
...全文
给本帖投票
623 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
SKATE11 2013-12-25
  • 打赏
  • 举报
回复
可以的
derekrose 2013-12-25
  • 打赏
  • 举报
回复
这是全部的code吗
赵4老师 2013-12-25
  • 打赏
  • 举报
回复
偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。” 的方法解决的。
yanran0927 2013-12-25
  • 打赏
  • 举报
回复
你还写了别的代码了没,这个结构体没问题啊
风行踩火轮 2013-12-25
  • 打赏
  • 举报
回复
编译器哪里的设置是不是有问题,在google上搜一下你的错误号吧,我本地也没啥问题
图灵狗 2013-12-25
  • 打赏
  • 举报
回复
问题不在这个文件中。
引用 楼主 wanglovec 的回复:
在.h中 这样声明 #pragma once struct mystruct { int a; int b; }; 报错 : error C2143: syntax error : missing ';' before '<class-head>' fatal error C1004: unexpected end of file found 求帮助
wanglovec 2013-12-25
  • 打赏
  • 举报
回复
VC6.0 我现在用的
yanran0927 2013-12-25
  • 打赏
  • 举报
回复
应该是编译器问题,我这边是正常的,头文件里面不能声明结构体那这个C就废了。
signforlin 2013-12-25
  • 打赏
  • 举报
回复
当然可以,说实话,我还没在cpp里声明过结构体。。。。
这个源码没记错的话是去年9月份写的,当时本来是打算写一个功能齐全一点的PE工具,例如解析导入表、导出表、重定位表及节表等功能,后来只写了一个解析导出表就放弃了,为什么呢,主要是因为声明结构体比较烦,是一个体力活,所以后面转用VS开发这款工具去了,毕竟头文件都将结构体定义好了,省事,现在把这个 易语言 版本的解析导出表代码开源。 它可以解析出导出表正常导出的函数,还能解析出导出表的中转函数,见下图: 写这个工具的过程中发现PEID解析导出表有点问题,见下图 注意这个图3个红框的内容,第一个是LORDPE解析的,中间是我自己写的代码解析的,最右边是PEID解析的,可以发现PEID解析导出表时只能正常解析以符号名导出的函数,一旦遇到以序号导出的函数就会导致错位,图中user32.dll导出的前两个函数是以序号0x5DC和0x5DD导出的并没有导出函数名,而PEID不能正常解析,LORDPE、STUDYPE还有我自己写的代码都能正常解析,至于为什么导出序号那,我的是从0开始的,而LORDPE和STUDYPE是以0x5DC开始的,那是因为我没有加上序号基数,中间那个蓝色箭头指向就是基数,函数真正的导出序号是要加上这个基数的,只不过我习惯这样表达而已。另外开源前特意把面变量的名字改成了一看就明白的意思,所以看起来有点奇怪

65,179

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧

手机看
关注公众号

关注公众号

客服 返回
顶部