首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

把工程从BCB2007升级到BCB2010,有什么要注意的地方?该怎么解决

2012-04-09 
把工程从BCB2007升级到BCB2010,有什么要注意的地方?最近想重装系统了,BCB也想升级为BCB2010,不知道有什么

把工程从BCB2007升级到BCB2010,有什么要注意的地方?
最近想重装系统了,BCB也想升级为BCB2010,不知道有什么要注意的地方?
另外BCB2010中一些函数的参数从char *变为了wchar_t *,对于现有的工程,应该怎么改比较好?

[解决办法]
注意一些三方控件
[解决办法]
编译器哦,没事别升级。
[解决办法]
通常情况使用char &参数没问题,不过最好改为wchar_t &,碰到一回使用KeyDown事件,使用char&参数,回车和字符“不”不分。
[解决办法]
处理字符串时要注意
[解决办法]
mark
[解决办法]
杯具,昨晚装了2010不到半个小时就受不了了,直接把2010卸载了,现在对c++builder是越来越失望... ...
[解决办法]
第三方控件要先看看有没有支持2010的,否则很痛苦
[解决办法]
头盔图标没有了,感觉2010的图标没有头盔图标好看
[解决办法]
2010很好,我现在的工程大部分已经从6.0转移到2009、2010了。对于第三方控件的兼容性,这个是肯定存在的,所以我现在很少用第三方控件,尽量用原生的组件。
[解决办法]

不要怕麻烦,有麻烦的地方就是你超越自我,超越别人的地方。
[解决办法]
升级是一件很麻烦的事情,我有个项目,从6升级到2009,最关键的就是Unicode字符的问题,AnsiString到UnicodeString的转换,c_str()与w_str()函数的转换,如果以前写的有AnsiString字符的存储,那么需要更加留意一下。还有就是使用的第三方的控件是否有支持2009或2010的,别的个人觉得问题不是太大
[解决办法]
ShowMessage(StrToIntDef(Q->FieldByName("ID")->AsString,-1));//结果错误,一直是-1
把控件的值直接拿来运算在某些函数会出错;
2009开始就出现这个问题了 2010 也有
比如:
char a [1000];
sprintf(a,"%s",Edit1->Text.c_str());
ShowMessage(a);
就会有问题,

[解决办法]
接上
所以你需要转换一下 或者提取出来
char a[1000];
sprintf(a,"%s",AnsiString(Edit1->Text).c_str());
ShowMessage(a);
[解决办法]

探讨
C/C++ code
ShowMessage(StrToInt(Q->FieldByName("ID")->AsString));//结果正确 ShowMessage(StrToIntDef(Q->FieldByName("ID")->AsString,-1));//结果错误,一直是-1


[解决办法]
探讨
C/C++ code
ShowMessage(StrToInt(Q->FieldByName("ID")->AsString));//结果正确 ShowMessage(StrToIntDef(Q->FieldByName("ID")->AsString,-1));//结果错误,一直是-1
AnsiString Str=Q->FieldByName("ID")->AsString;
ShowMessage(StrToIntDef(Str,-1));//结果正确

这个是为什么呢?2010有这个问题,以前2007都是正确的。

[解决办法]
绕过此类问题最好方法就是先用变量引出控件值吗? 

探讨
ShowMessage(StrToIntDef(Q->FieldByName("ID")->AsString,-1));//结果错误,一直是-1
把控件的值直接拿来运算在某些函数会出错;
2009开始就出现这个问题了 2010 也有
比如:
char a [1000];
sprintf(a,"%s",Edit1->Text.c_str());
ShowMessage(a);
就会有问题,

热点排行