在BCB6里,String a=WideString(char(100));运行正确,在BDS2006中出错

whitelion 2006-01-12 08:56:22
String a=WideString(char(100));
在BCB6中,编译运行都能通过
在BDS2006中,编译能通过,但运行就出错

如果改成
String a=String(char(100));
那在BDS2006k 编译运行都能通过
...全文
206 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
alloutoflove 2006-01-13
  • 打赏
  • 举报
回复
哇,长见识啊, BDS2006自从安装后由于好多第三方控件的原因,一直没去试..
勉励前行 2006-01-12
  • 打赏
  • 举报
回复
公開源碼是好,發生錯誤時至少能明白錯誤發生在哪裡,不會干焦急。
勉励前行 2006-01-12
  • 打赏
  • 举报
回复
wstring.cpp 中的構造函數
__fastcall WideString::WideString(char src)
: Data(0)
{
static WideString fmt("%c");
TVarRec r(src);
WideFmtStr(*this, fmt, &r, 0);//這句。。。。
}
但WideFmtStr 函數卻不支持 %c 參數。 可參看幫助。

這個版本真不知道怎麼搞的。
其他函數在調用WideFmtStr會是這樣寫 :Sysutils::WideFmtStr 唯獨這個函數沒加上namespace, 可能這個函數是後面的人加上的。這種錯誤是接口定義不清晰造成的。

這類錯誤,我們也常犯,但卻希望Borland不要犯。
ccrun.com 2006-01-12
  • 打赏
  • 举报
回复
呵呵。看来洋鬼子有时候也会犯错。
jishiping 2006-01-12
  • 打赏
  • 举报
回复
其实BCB6中,有一个很低级的错误,Borland一直没有修正,就是结构 TLibModule 的定义是错误的,中间漏了2个变量。
jishiping 2006-01-12
  • 打赏
  • 举报
回复
知道原因后,避开就可以了。

13,825

社区成员

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

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