为什么会报告下面的错误; 我实在想不通了

汽车电子讲坛 2008-10-25 07:43:10

typedef struct 在类里面声明的一个结构
{
UINT name[255];
UINT ID[255];
}timer_case;



::KillTimer(NULL, timer_case.ID[ID_TIMER_SEND_OVER]); //为什么会报告下面的错误;

: error C2275: 'CTabCase::timer_case' : illegal use of this type as an expression
...全文
79 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
贾维斯 2008-10-25
  • 打赏
  • 举报
回复
typedef struct _timer_case{ //这个名字一定要写
UINT name[255];
UINT ID[255];
}timer_case;
timer_case timer; //然后定义一个结构体变量



太乙 2008-10-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yanglin1228 的回复:]
谢谢大家,我搞糊涂了, 我现在加了一个结构变量,在其他函数是好了,可到了下面的静太函数 CALLBACK CTabTestCase 还是报错:


typedef struct
{
UINT name[255];
UINT ID[255];
}timer_case;
timer_case timer;


void CALLBACK CTabTestCase::MyTimerProc(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime)
{
if(idEvent==timer.ID[ID_TIMER_SEND_OVER])//但这里还是报错了
{
int i;

[/Quote]




#include <stdlib.h>
#include <stdio.h>
#include <afxcoll.h>
typedef struct
{
UINT name[255];
UINT ID[255];
}timer_case;
timer_case timer;
void main()
{
UINT i = 0;
if(timer.ID[2]==i)
{
}
}
汽车电子讲坛 2008-10-25
  • 打赏
  • 举报
回复
谢谢大家,我搞糊涂了, 我现在加了一个结构变量,在其他函数是好了,可到了下面的静太函数 CALLBACK CTabTestCase 还是报错:




typedef struct
{
UINT name[255];
UINT ID[255];
}timer_case;
timer_case timer;


void CALLBACK CTabTestCase::MyTimerProc(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime)
{
if(idEvent==timer.ID[ID_TIMER_SEND_OVER])//但这里还是报错了
{
int i;
i=5;
}


}

error C2228: left of '.ID' must have class/struct/union type
帅得不敢出门 2008-10-25
  • 打赏
  • 举报
回复
可以看看typedef的用法
typedef 类型 类型别名
注意上面的只是类型别名而已,这里不是定义了一个对象
likefermat 2008-10-25
  • 打赏
  • 举报
回复
timer_case 是个结构体类型,
既然是个类型,当然不代表一个对象,你要调用里面的成员,首先要定义一个对象
timer_case duixiang;
然后利用duixiang,就可以调用其成员了
daixuefeng203 2008-10-25
  • 打赏
  • 举报
回复
先定义一个结构体变量啊,怎么直接用了
msdn65997404 2008-10-25
  • 打赏
  • 举报
回复
由于用了typedef 所以timer_case 是类型的名称
你要使用的话还是给他生成一个实例了再使用
例如

typedef struct
{
UINT name[255];
UINT ID[255];
}timer_case;
timer_case timercase;

::KillTimer(NULL, timercase.ID[ID_TIMER_SEND_OVER]);

应该可以的...

65,211

社区成员

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

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