C++ Builder2010使用中发生的不可思议的问题,肯定是BUG

jiaguanxin 2011-04-01 09:30:30
且看下列两段程序有何不同?
/***********************************
this->edit_gridY->Text=tsl->Strings[0];
this->edit_gridX->Text=this->edit_gridY->Text;
this->edit_gridY->Text=tsl->Strings[1];
/************************************/
this->edit_gridY->Text=tsl->Strings[0];
this->edit_gridY->Text=tsl->Strings[1];

看到这里,您一定觉得第一种程序里做法纯粹有病。却不知这是花费了我一个小时的解决方案!第二种情况执行到gridX赋值这句话时会报异常:"" is not valid integer。我跟踪查看这时tsl->Strings[0]的值是“2”,但吧gridX变成gridY就不会产生这个异常,我实在没办法才被迫采用了第一种方法,问题解决了。

还有一次奇葩的编译错误,我在程序中用到了Rave report,原本正常,某天不知我改了哪段程序,结果突然在编译结束后链接报错说:找不到RPCON.OBJ。我查网上也查不到这个是什么文件,但直觉RP大概和Rave Report有点关系,结果就把执行报表的语句屏蔽后,链接成功。然后我又把那句话恢复,在编译竟然这个问题就消失了!我靠!!!!!!第一次用c++ builder做东西,这玩意儿还真是能把人搞疯了!!

诸位谁还有更奇葩的问题?回复有分啊(超过20偶就无能为力了)
...全文
106 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
BCBPLC 2011-04-02
  • 打赏
  • 举报
回复
这不能怪C++BUILDER。
许多问题是自已代码造成的。
My_Love 2011-04-02
  • 打赏
  • 举报
回复
屬性容易讓人迷糊,幸好C++不支持它。
勉励前行 2011-04-02
  • 打赏
  • 举报
回复
有屬性 存在的地方 , 就多了一層間隔,,看代碼也容易雲裡霧裡。

這幾行代碼,應該會觸發其他事件,或者運行其他函數。並非簡單的類型賦值。
this->edit_gridX->Text=this->edit_gridY->Text;
this->edit_gridX->Text=tsl->Strings[0];
這兩行運行的代碼可能並不一樣。

如果 Text 設置了 read = GetText , write = SetText
this->edit_gridX->Text=this->edit_gridY->Text; //先執行 GetText 返回值 再執行 SetText ;
this->edit_gridX->Text=tsl->Strings[0];//先轉換類型 然後執行 SetText

如果 edit_gridX 與 edit_gridY 不一樣的類型的話這問題就很好理解了。
一個特例 : 當 edit_gridX 是一個整形字段, edit_gridX是一個字符串字段,那麼出現上述問題是正常的。

屬性容易讓人迷糊,幸好C++不支持它。
Waiting4you 2011-04-02
  • 打赏
  • 举报
回复
有的时候是编译问题,用Build全部重新编译一下就好了。
sczyq 2011-04-01
  • 打赏
  • 举报
回复
edit_gridX 是神马类?
fbmsyu 2011-04-01
  • 打赏
  • 举报
回复
这很正常。有时候就是这样。
多数情况是代码的问题,换种写法就有可能能行。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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