我正在使用DCEF3(https://code.google.com/p/dcef3/)和Delphi 7。
嵌入DCEF的CEF版本为3.1547.1412。
问题
在使用Windows 2008 R2的计算机上,有时我的应用程序加载时,它会因类型为 BEX 的事件而崩溃。
我只能解决崩溃停用窗口上的DEP ,为此我使用了提示命令:
bdcedit /set nx AlwaysOff
但这不是解决方案。
我无法强迫用户在其服务器上禁用 DEP。
以下是APPCRASH报告(葡萄牙文):
Assinatura do problema:
Nome do Evento de Problema: BEX
Nome do Aplicativo: MyExecutable.exe
Versão do Aplicativo: 1.1.0.1
Carimbo de Data/Hora do Aplicativo: 2a425e19
Nome do Módulo de Falhas: dhcpcsvc6.DLL
Versão do Módulo de Falhas: 6.1.7601.17970
Carimbo de Data/Hora do Módulo de Falhas: 50745f7c
Deslocamento de Exceção: 00001730
Código de Exceção: c0000005
Dados de Exceção: 00000008
Versão do sistema operacional: 6.1.7601.2.1.0.18.10
Identificação da Localidade: 1046
Informações Adicionais 1: a7aa
Informações Adicionais 2: a7aa91f17ea749d42a4de3b390fa5b3d
Informações Adicionais 3: a7aa
Informações Adicionais 4: a7aa91f17ea749d42a4de3b390fa5b3d
有人可以帮助我找到问题的根源或有关为何发生这种情况的一些信息吗?
答案 0 :(得分:2)
在评论中,您可以通过调用forum that explains that Chromium intentionally enables data execution prevention链接到SetProcessDEPPolicy
。 DEP is known to interfere with Delphi 7.从这个角度来看,我看到了三个解决方案(按降序排列顺序列出):
ApplyProcessMitigationsToCurrentProcess
in process_mitigations.cc使其忽略MITIGATION_DEP
和MITIGATION_DEP_NO_ATL_THUNK
标记。SetProcessDEPPolicy
的调用失败。答案 1 :(得分:0)
根据这篇文章:
我添加了以下指令以将标题添加到TSAWARE信息:
{$SETPEOPTFLAGS $8000}
经过一些详尽的测试后,问题就停止了。