You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

仅64位Delphi IDE编译出现F2084内部错误,求解决方案

Delphi 64位编译F2084内部错误排查方案

问题描述

使用64位Delphi IDE编译时触发以下F2084内部错误:

[dcc64 Fatal Error] F2084 Internal Error: AV7FF8AB8957FE(7FF8779F0000)-R1996FF0A004-0
[dcc64 Fatal Error] F2084 Internal Error: AV7FF8AB8957FE(7FF85F3B0000)-R1BFC5A1A004-0

32位IDE编译完全正常,已尝试以下操作但未解决:

  • 确认可用内存充足(3GB)
  • 重启IDE及电脑
  • 将文件编码从ANSI改为UTF8
  • 执行项目清理
  • 切换DEBUG/RELEASE模式编译

项目结构简单,仅含一个带TPaintBox的主窗体,相关代码如下:

窗体代码

object frmMain: TfrmMain
  Left = 0
  Top = 0
  Caption = 'First Contact Exterminaor Service Inc'
  ClientHeight = 178
  ClientWidth = 257
  WindowState = wsMaximized
  FormFactor.Width = 320
  FormFactor.Height = 480
  FormFactor.Devices = [Desktop]
  OnCreate = FormCreate
  OnDestroy = FormDestroy
  OnKeyDown = FormKeyDown
  OnKeyUp = FormKeyUp
  OnMouseDown = FormMouseDown
  OnMouseMove = FormMouseMove
  OnMouseUp = FormMouseUp
  DesignerMasterStyle = 0
  object PaintBox: TPaintBox
    Align = Client
    Size.Width = 257.00000000000000000
    Size.Height = 178.00000000000000000
    Size.PlatformDefault = False
    OnMouseDown = PaintBoxMouseDown
    OnMouseMove = PaintBoxMouseMove
    OnMouseUp = PaintBoxMouseUp
    OnPaint = PaintBoxPaint
  end
end

项目文件代码

program FirstContactExterminaorServiceInc;

uses
  System.StartUpCopy,
  FMX.Forms,
  uMain in 'uMain.pas' {frmMain};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TfrmMain, frmMain);
  Application.Run;
end.

解决思路

  1. 更新Delphi补丁:F2084内部错误多为编译器bug,优先检查当前Delphi版本是否有可用的Update或Hotfix,这类AV错误通常会在官方补丁中修复。
  2. 调整FMX组件属性:尝试移除或修改Size.PlatformDefault = False属性,改为默认的True,64位编译器对FMX组件的非标准属性处理可能存在兼容性问题。
  3. 排查事件处理代码:临时注释uMain.pas中所有事件处理逻辑(比如PaintBoxPaint、鼠标事件),逐步恢复代码定位问题点。重点检查是否存在64位不兼容的写法:未对齐的变量、错误的指针转换、依赖32位特定类型的代码。
  4. 重置IDE配置:导出当前IDE配置后,删除Documents\Embarcadero\Studio\<版本号>下的配置文件(如bds.config),重启IDE后用默认配置测试编译,排除配置损坏导致的问题。
  5. 迁移至新项目:新建空白64位FMX桌面项目,手动添加TPaintBox并逐步复制原项目的代码和属性,排除原项目文件损坏的可能。
  6. 更新系统组件:确保Windows系统安装最新补丁,修复或更新.NET Framework、VC++运行库等依赖组件,64位编译器可能依赖这些组件的正确版本。

内容的提问来源于stack exchange,提问作者Ian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 14:53:11