Delphi 11 TShellTreeView在Win64平台启动时触发访问违例问题
Delphi 11.1 Alexandria Win64平台下TShellTreeView启动访问违例问题
问题现象
在Delphi 11.1 Alexandria版本中,使用Vcl.Shell.ShellCtrls单元的TShellTreeView组件时,Win64平台下的应用在启动、窗体初始化过程中,会在TWinControl.DefaultHandler()方法触发访问违例错误。
重现步骤
- 创建新VCL Forms应用,将
TShellTreeView组件添加到窗体;或直接创建名为ShellTreeViewTest.dpr的项目,粘贴以下代码后在Delphi IDE中打开:
program ShellTreeViewTest; uses Vcl.Forms, Vcl.Controls, Vcl.Shell.ShellCtrls; var Form: TForm; begin Application.Initialize; Application.CreateForm(TForm, Form); with TShellTreeView.Create(Form) do Parent := Form; Application.Run; end.
- 为项目添加Windows 64位编译平台;
- 编译并运行应用。
关键触发条件
仅当项目选项的链接选项卡中,「支持高熵64位地址空间布局随机化(ASLR)」选项启用时才会触发该问题。此选项在Delphi 11中默认处于启用状态,而Delphi XE2无此配置项。
内容的提问来源于stack exchange,提问作者malom
相关产品推荐
相关产品推荐

