全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:5838
推到 Plurk!
推到 Facebook!

CB 2009 Trial 和 BCB6的相容性

缺席
highbottle
一般會員


發表:3
回覆:1
積分:0
註冊:2006-10-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-12-12 16:33:13 IP:59.125.xxx.xxx 訂閱

最近安裝C builder 2009試用版(原本的BCB 6未移除)使用,在使用上有些問題想請教。

目前我的環境為,WinXP(SP2),BCB6,CB2009。

由BCB6新增一個簡單的專案,現在在BCB6中可正常編譯,但執行時會有"應用程式正常初始(0xc0000005)失敗。...."的訊息(訊息請見附加檔案);將該專案由C builder 2009編譯時則會出現以下Link Error:
[ILINK32 Error] Error: Unresolved external '_CG_DESC' referenced from D:\WITHDLL\EXE\DEBUG_BUILD\EXE_PROJECT1.OBJ
[ILINK32 Error] Error: Unresolved external '_CG_THIS' referenced from D:\WITHDLL\EXE\DEBUG_BUILD\UNIT3.OBJ
[ILINK32 Error] Error: Unresolved external '_CG_DTORTHIS' referenced from D:\WITHDLL\EXE\DEBUG_BUILD\UNIT3.OBJ
[ILINK32 Error] Error: Unresolved external '_CG_DA_EPY' referenced from D:\WITHDLL\EXE\DEBUG_BUILD\UNIT3.OBJ
[ILINK32 Error] Error: Unresolved external '_CG_A_BP' referenced from D:\WITHDLL\EXE\DEBUG_BUILD\UNIT3.OBJ
[ILINK32 Error] Error: Unresolved external '_CG_A_PY' referenced from D:\WITHDLL\EXE\DEBUG_BUILD\UNIT3.OBJ
[ILINK32 Error] Error: Unresolved external '_CG_GDA_EGY' referenced from D:\WITHDLL\EXE\DEBUG_BUILD\EXE_PROJECT1.OBJ

我目前解決這問題的方式是將CodeGuard取消,該專案便可在BCB6及CB 2009中正常編譯及執行,但想請問是否有其它方式能在使用CodeGuard的情況下,也能正常編譯及執行。謝謝。
highbottle
一般會員


發表:3
回覆:1
積分:0
註冊:2006-10-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-12-19 10:28:07 IP:59.125.xxx.xxx 訂閱
http://support.codegear.com/cn/article/36095

以上的文章有發生原因及解決方案~

提供大家參考
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-04-06 18:50:01 IP:118.167.xxx.xxx 未訂閱
怕未來原始連結會不見,轉貼原文上來
Can BCB6 and BDS 2006 be installed on the same machine?
摘要: Can BCB6 and BDS 2006 be installed on the same machine?
//<![CDATA[ Sys.WebForms.PageRequestManager._initialize('ctl21', document.getElementById('ctl20')); Sys.WebForms.PageRequestManager.getInstance()._updateControls([], [], [], 90); //]]>
  • Product Name: C Builder
  • Product Version: 6 & 2006
  • Product Component: N/A
  • Platform/OS Version: Windows
Description: <!-- Enter appropriate problem description here -->
Can BCB6 and BDS 2006 be installed on the same machine?
Answer/Solution: <!-- Enter appropriate resolution here -->
BCB6 users often want to know if BDS 2006 and BCB6 can be installed and coexist peacefully on the same machine. The answer is yes, but with a few minor caveats to be aware of.

First, BDE users should be aware that installing BDS 2006 will replace BCB6's "BCDEMOS" alias with one called "DBDEMOS." The good news is that BCDEMOS and DBDEMOS contain the same tables. Of course, any projects that refer to BCDEMOS will have to be updated to point to DBDEMOS instead. This is unlikely to be much of an issue since users almost never use this sample BDE database except in unimportant test projects.

The more important caveat is for customers who use CodeGuard. The CodeGuard DLL, cg32.dll, has the same name in BCB6 and BDS 2006. Hence, at runtime, applications built using one version of C Builder may pick up cg32.dll from the other version.

Problems arise when a BCB6 application tries to use cg32.dll from BDS 2006. It will fail with "The application failed to initialize properly(0xc0000005); Click OK to terminate." This usually happens when the BDS 2006 \Bin directory comes first on the system path.

The following three workarounds seem to eliminate the error. I have listed them in order of personal preference:

(1)
Place a copy of cg32.dll from the correct product in the executable's working directory. This will ensure that the executable finds the correct version of cg32.dll and only requires one copy and paste operation upon creation of a new project.

(2)
Modify the system path so that the BCB6 \Bin directory comes before the BDS 2006 \Bin directory. My testing suggests that the problem only occurs when a BCB6 executable tries to use cg32.dll from BDS 2006. The converse, when a BDS 2006 executable uses cg32.dll from BCB6, does not seem to result in the same problem.

(3)
Create two batch files ? one that modifies the system path so that BCB6's \Bin directory comes first, and another that modifies it so that BDS 2006's \Bin directory comes first. Run the appropriate batch file before running the executable. This has the same benefits as the first workaround above, but I find it to be the most cumbersome.

BCB6 and BDS 2006 use their own unique paths at design time, so we can be certain that the correct version of CodeGuard is being linked in. It's just a matter of making sure the executable finds the correct version first on the search path at runtime.
Can BCB6 and BDS 2006 be installed on the same machine?

以上的文章有發生原因及解決方案~

提供大家參考

===================引 用 highbottle 文 章===================
swszg
一般會員


發表:11
回覆:10
積分:9
註冊:2007-01-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-07-27 14:27:20 IP:140.130.xxx.xxx 訂閱
之前有碰過類似的問題!
我有一個LBI專案 與EXE專案
LBI專案有打開 CodeGuard
EXE專案卻沒有 就會發生類似的狀況
只要兩個專案同時打開或關閉CodeGuard 此狀況就會消除
希望對你有幫助!
我的是CB2007版本...
------
ΞΛΤ造福全人類ΠΔζ
系統時間:2024-04-20 9:02:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!