試用 BCB2010 遇到的問題
今天試著將一些控件安裝到 BCB2010 上,將遇到的問題整理一下貼上來分享 ,同時也希望其他使用 2010 的朋友,將問題或竅門貼上來,大家一起學習使用2010。
1、多項目同組時的 BuildAll, 會過早地檢查包依賴,產生多余的提示。
在多個項目的組中 BuildAll 時,會先檢查全部項目其需要包含的包及靜態庫,如果缺少,則提示,然後才逐一編譯。
而在B2007中,則是逐一編譯,編譯到該項目時才檢查。
如果同一項目組中存在包依賴問題。B2010的方式則會在一開始就提示缺少包或庫。B2007則不會。
2、編譯PAS文件時,delphi link 如果選擇 Generate all C++ Builder files (including package libs) 則會產生link error: 找不到 obj file
除非你先用其他方式(如Generate C++ .objs, headers, namespaces, export)生成obj file。
選擇 Generate all C++ Builder files 然後 執行 clear 再 build 就會出現 link error
所以,如果想生成LIB靜態庫,必須要先生成 obj 然後重新編譯生成 lib , 要不厭其煩地 編譯兩次才行 。
3、鏈接時出現了一個致命錯誤。(編譯 QRDesign1.59 時出現)
Exception EAccessViolation: Access violation at address 50010ABE in module 'rtl140.bpl'. Read of address FFFFFFFF
[MSBuild Error] The "ILINK32" task failed unexpectedly.
System.Runtime.InteropServices.COMException (0x8000FFFF): 災難性的失敗 (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))
at Borland.Build.Tasks.Cpp.IBCBuildHostObject.ILinkAliasVFSFile(String fileName, String& tempFilename)
at Borland.Build.Tasks.Cpp.ILINK32.GetCommandLine()
at Borland.Build.Tasks.Common.BaseTask.GenerateCommandLineCommands()
at Microsoft.Build.Utilities.ToolTask.Execute()
at Borland.Build.Tasks.Common.BaseTask.Execute()
at Borland.Build.Tasks.Cpp.ILINK32.Execute()
at Microsoft.Build.BuildEngine.TaskEngine.ExecuteTask(ExecutionMode howToExecuteTask, Hashtable projectItemsAvailableToTask, BuildPropertyGroup projectPropertiesAvailableToTask, Boolean& taskClassWasFound)
4、編譯pascal代碼的速度是比不上 B2007 + bcc32pch2.79 的。
我試過可以在BCB中編譯安裝的第三方控件:Ehlib5, QuickReport5.04.1,TeeChart8.06 VirtualTree4.86 vclskin5
未通過的:QRDesign1.59(未拿到 for 2010 版的,我拿 for 2007 版的改,因為鏈接出現致命錯誤就沒繼續了。)
decisioncube源碼有2010版本的,要正版用戶才能下載:http://cc.embarcadero.com/Item/27351
以前測試存在的問題:
1、奇怪的IDE:第一次能選上,以後就不行了。
试着用 放一个 RibbonCombox 到 Ribbon 上, 第一次,可以用鼠标选中TActionClients[0] , 焦点转移后无法用鼠标选中。只能通过ActionManager逐级选择这个东西来修改RibbonCombox的"Caption" , 有点怪怪的,为什么第一次可以,焦点转移后就不行了。 编译,试执行,一切正常。。。。。
2、項目中莫需有的 LIB 及 BPI 文件未清除。
将界面是的全部控件清除,存盘。发现没有将对应的头文件去除,依然#include那些不需要的头文件。 这好象问题不大。继续測试,编译一个不带包独立运行的版本,还是正常。 可是当我手工将这些多余的头文件清除后,问题出现了:
[ILINK32 Error] Error: Unresolved external 'LresultFromObject' referenced from C:\PROGRAM FILES\EMBARCADERO\RAD STUDIO\7.0\LIB\DEBUG\VCLACTNBAND.LIB|ActnMenus
如果编译的是带包运行的版本,则链接正常,否则链接错误。要知道清除所有控件后,这是一个空Form啊。
BCB2010 还是与以前的版本一样,残留控件信息,在项目文件中错误地链接莫需有的LIB及库。而且Options中不提供对应修改方法。当然解决方法是手工编辑 .cbproj 项目文件,将莫需有的 LIB 及 BPI 文件去除。这样就能正常编译连接了。这个问题在所有BCB版本中都一直存在,非要关闭当前项目并手工编辑项目文件不可。
3、IDE不能识别事件函數中的名字空间。(以前的版本也有这个问题)
将Button1的事件函数void __fastcall TForm1::Button1Click(TObject *Sender) {/**/}
更改为void __fastcall TForm1::Button1Click(System::TObject *Sender) {/**/}
保存,IDE依然不能正确识别名字空间对类型的影响,System::TObject 与 TObject 是同一类型,但IDE就是只认 TObject 不认 System::TObject 这对安装多个第三方控件的使用者来说,可能造成麻烦。因为当出现类型同名时,只有加上名字空间都能正确区分不同的类型。好象还好,还允许你不移除这个事件的关联,只是每次保存都被提问,很烦人。当然编译与连接均是正常,只是IDE在保存时老是提问你。
版本: Embarcadero® C++Builder® 2010 Version 14.0.3513.24210 不敢裝UP1 .
(注明:以上測試是在 BCB2010 中編譯安裝 delphi 控件,不是在 delphi 2010 中編譯安裝。)
[解决办法]
不错!!
[解决办法]
2010生成的可执行文件体积太庞大了。一个空的ActiveX Library工程,完全编译后竟然1MB+的体积。
另外,IDE似乎记不住工程组中当前活动的工程,每次打开工程组,总是将最后一个工程设置为活动状态。
[解决办法]
关注!
[解决办法]
关注
------解决方案--------------------
试用版开久了不动,重新编译运行就提示协议信息并不允许操作。
[解决办法]
Ehlib5 你安装的那个版本 可以 编译成功吗 ?
[解决办法]
我总是这个问题..
[BCC32 Error] Toolctrlseh.hpp(866): E2015 Ambiguity between 'ftSingle' and 'Typinfo::ftSingle'
Full parser context
Unit1.cpp(6): #include Unit1.h
Unit1.h(10): #include D:\Program Files\Embarcadero\Ehlib_CB\RADStudio2010\DBGridEh.hpp
DBGridEh.hpp(34): #include D:\Program Files\Embarcadero\Ehlib_CB\RADStudio2010\Dbsumlst.hpp
Dbsumlst.hpp(24): #include D:\Program Files\Embarcadero\Ehlib_CB\RADStudio2010\Toolctrlseh.hpp
Toolctrlseh.hpp(44): namespace Toolctrlseh
[解决办法]
不会啊
[解决办法]
体积问题一直是我比较郁闷不考虑用的原因。
[解决办法]
学习
[解决办法]
Delphi 2010用了几天,又退回Delphi 2009了。
[解决办法]
太新了,这有问题,那有问题的
[解决办法]
我一直是BCB的支持者,自从95年使用BCB以来,就一直没有使用过其它语言工具。当时情况是这样的,使用MSVC5.0开发程序,但界面设计很不直观,虽然可以凭借软件技巧实现不错的界面,开始还为自己能够在程序中自由的使用代码设计界面而自豪,后来繁琐的设置最终让我寻找直观的界面开发工具。认识了 BCB,就不再更改了。2010下载了,但还没有破解,期待是个好工具,我又能继续坚持了!
[解决办法]
myEclipse7.0稳定吗,
[解决办法]
试用版可能会有很多问题
[解决办法]
呃……目前还在用2009,懒得升级了……
[解决办法]
用来用去,还是用6了
[解决办法]
tchart控件找不到放什么位置了
[解决办法]