绝代码农 发表于 2021-7-31 10:27:24

Borland Developer Studio 2006打开旧版本的C++Builder工程出现Access Violation错误

使用Borland Developer Studio (BDS) 2006打开一个C++Builder工程,出现Access Violation错误:
+ $6{bcbide100.bpl} XMLProj.XMLProj.CreateNewBdsProjFile (Line 1249, "..\cpp\XMLProj.pas" + 2) + $6
+ $0{rtl100.bpl  } System.System.@HandleAnyException (Line 9980, "system.pas" + 13) + $0
 + $41{ntdll.dll   } RtlConvertUlongToLargeInteger + $41
 + $9{ntdll.dll   } KiUserExceptionDispatcher + $9
 + $22{bcbide100.bpl} CppProjOpts.CppProjOpts.MakeBprToBdsProj (Line 7414, "CppProjOpts.pas" + 8) + $22
 + $24{ bcbide100.bpl} CppProjOpts.CppProjOpts.TCppLegacyProjectFileHandler.Convert (Line 7637, "CppProjOpts.pas" + 11) + $24
 + $9{bcbide100.bpl} CppProjOpts.CppProjOpts.TCppLegacyProjectFileHandler.FileOpen (Line 7676, "CppProjOpts.pas" + 1) + $9
 + $14{coreide100.bpl} DocModul.DocModul.TFilterList.OpenFile (Line 777, "DocModul.pas" + 35) + $14
 + $1E{coreide100.bpl} DocModul.DocModul.ProjectOpenDialog (Line 3079, "DocModul.pas" + 30) + $1E
{bds.exe     }
 + $3{vclactnband100.bpl} ActnMenus.ActnMenus.TCustomActionMainMenuBar.TrackMenu (Line 3143, "ActnMenus.pas" + 3) + $3
 + $4{vclactnband100.bpl} ActnMenus.ActnMenus.TCustomActionMenuBar.CMItemClicked (Line 883, "ActnMenus.pas" + 3) + $4
 + $6{vcl100.bpl  } Controls.Controls.TWinControl.WndProc (Line 7242, "Controls.pas" + 101) + $6
 + $4{vclactnband100.bpl} ActnMenus.ActnMenus.TCustomActionMenuBar.WndProc (Line 1572, "ActnMenus.pas" + 15) + $4
 + $0{rtl100.bpl  } Classes.Classes.StdWndProc (Line 11572, "classes.pas" + 8) + $0
 + $6F{USER32.dll  } GetDC + $6F
 + $14F{USER32.dll  } GetDC + $14F
 + $122{USER32.dll  } GetWindowLongW + $122
 + $A{USER32.dll  } DispatchMessageA + $A

经过检查,发现BDS2006只能处理C++Builder 5/6的工程,而早期的工程文件由于不是XML格式,就会导致上面的错误。而要想处理早期的工程,必须先用BCB 6.0转换一下。


文档来源:51CTO技术博客https://blog.51cto.com/u_9542848/3236530
页: [1]
查看完整版本: Borland Developer Studio 2006打开旧版本的C++Builder工程出现Access Violation错误