error C2228: “.cbSize”的左边必须有类/结构/联合

djx1234567 2017-07-17 09:46:32
将VS6.0工程用VS2010打开,出现了error C2228: “.cbSize”的左边必须有类/结构/联合 报错,请问各位怎么解决?谢谢!
...全文
4625 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
真相重于对错 2018-10-12
  • 打赏
  • 举报
回复
你这是c/c++代码吗?没见过这种结构初始化的。
  • 打赏
  • 举报
回复
这是某个类,结构,联合的成员啊。 找到哪一行错误,补上就行了。 这种错误,都会报哪一行的。
带月意孤飞 2018-10-11
  • 打赏
  • 举报
回复 2
使用->替换.。
fffmonkeyking 2017-09-11
  • 打赏
  • 举报
回复
c代码,这样初始化变量: dns_cfg_message_t dns = { .header = { (add ? msg_add_dns_cfg : msg_del_dns_cfg), sizeof(dns_cfg_message_t), 0 }, .iface = { .index = tt->adapter_index, .name = "" }, .domains = "", .family = AF_INET6, .addr_len = addr_len }; 在 vs2010 中编译报错: error C2275: “dns_cfg_message_t”: 将此类型用作表达式非法 参见“dns_cfg_message_t”的声明 语法错误: 缺少“;”(在标识符“dns”的前面) “dns”: 未声明的标识符 语法错误:“{” “dns”: 未声明的标识符 “.iface”的左侧必须具有结构/联合类型 ... ... 咋解决? 注:改成一个一个的赋值,就没问题!
Greless 2017-07-18
  • 打赏
  • 举报
回复
楼上是对的哦
Qlaiaqu 2017-07-17
  • 打赏
  • 举报
回复
变量本身的类定义找不到,引入相应头文件即可
战在春秋 2017-07-17
  • 打赏
  • 举报
回复
引用
请问各位怎么解决
没看到代码,有两种可能: 1 .cbSize左侧变量不是类
int i;
i.cbSize = 10;  //error C2228,i不是正确的类型。
2 .cbSize左侧变量是指向类对象的指针,此时不应该用点运算符,而应该用 ->
SomeClass b;
SomeClass *a = &b;
a.cbSize = 10; //error C2228, a是指针,应该用->引用其成员

64,644

社区成员

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

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