E2195 错误

__lhy 2010-09-11 05:46:06


E2195无法评价函数调用(C + +中) E2195 Cannot evaluate function call (C++)
你们要编译器错误和警告(C + +中)指数 Go Up to Compiler Errors And Warnings (C++) Index



发出错误信息,如果有人试图构建一个明确对象或调用虚函数。 The error message is issued if someone tries to explicitly construct an object or call a virtual function.

在集成的调试器表达式,调用某些职能(包括隐式转换函数,构造函数,析构函数,重载运算符和内联函数)不支持。 In integrated debugger expression evaluation, calls to certain functions (including implicit conversion functions, constructors, destructors, overloaded operators, and inline functions) are not supported.

void __fastcall TForm32::setGS(void)
{

Form32->NSG->RowCount=NSD.tgnum+1;


Form32->TGNUM->Position=(NSD.tgnum);//我在此处断点查看各值都是正常

// Application->MessageBox("","",0);
this->TGNUM_T->Text=IntToStr(NSD.tgnum);//单步到这句就抛出异常 程序终止 查看各值 如上图所见
this->Edit4->Text=NSD.sendspeed;
this->Edit1->Text=NSD.L1gsc1;
this->Edit2->Text=NSD.L1gsc2;
this->Edit3->Text=NSD.L1gsc3;
for(int k=0;k<NSD.tgnum;k++){
Form32->NSG->Cells[0][k+1]="第"+IntToStr(k+1)+"组";
Form32->NSG->Cells[1][k+1]=WideString(NSD.ledbit[k]);
Form32->NSG->Cells[2][k+1]=NSD.dataname[k];
Form32->NSG->Cells[3][k+1]=NSD.datavalue[k];
}


图下面是我找到的一点信息 可是看不明白 大家有没有碰到这样的问题 谢谢啦
...全文
110 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
__lhy 2010-09-13
  • 打赏
  • 举报
回复
问题解决了 不在这个地方 在上条语句 给了两空值 汗
ccrun.com 2010-09-11
  • 打赏
  • 举报
回复
C++Builder的IDE有时会发疯,单步或断点时显示的数值有问题。
我建议你重启计算机,再打开工程调试。
__lhy 2010-09-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ccrun 的回复:]
在类成员函数内访问类的成员,前面无需加类的实例名,因为此时你访问到的Form32实例,未必是经过初始化的。改成这样试试:

TGNUM->Position=(NSD.tgnum);//我在此处断点查看各值都是正常


TGNUM_T->Text=IntToStr(NSD.tgnum);//单步到这句就抛出异常 程序终止 查看各值 如上图所见
Edit4->Text=NSD.sendspeed;
Edit1->Text=NSD.L1gsc1;
Edit2->Text=NSD.L1gsc2;
Edit3->Text=NSD.L1gsc3
[/Quote]
谢谢妖哥
NSG是stringrid
TGNUM_T是edit
TGNUM是updown
NSD是自定义的数据类
各个成员都初始化了 调试时右边的值都是正常的 左边全是是E2195 我现在是暂时把他们注释了 结果后面出现了E2208 ⊙﹏⊙b汗
ccrun.com 2010-09-11
  • 打赏
  • 举报
回复
在类成员函数内访问类的成员,前面无需加类的实例名,因为此时你访问到的Form32实例,未必是经过初始化的。改成这样试试:

void __fastcall TForm32::setGS(void)
{
NSG->RowCount = NSD.tgnum+1;
TGNUM->Position = NSD.tgnum;

TGNUM_T->Text = IntToStr(NSD.tgnum);
Edit4->Text = NSD.sendspeed;
Edit1->Text = NSD.L1gsc1;
Edit2->Text = NSD.L1gsc2;
Edit3->Text = NSD.L1gsc3;
for (int k=0;k<NSD.tgnum;k++)
{
NSG->Cells[0][k+1] = "第"+IntToStr(k+1)+"组";
NSG->Cells[1][k+1] = WideString(NSD.ledbit[k]);
NSG->Cells[2][k+1] = NSD.dataname[k];
NSG->Cells[3][k+1] = NSD.datavalue[k];
}
...


当然,我只是把你的代码略改了下,并不清楚你的NSG和TGNUM_T是什么类型的对象。

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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