Delphi XE2 64位应用程序和应用程序验证器失败

6

我希望有人能够向我解释这个问题?当我使用Application Verifier的默认设置来编译所有64位应用程序时,它们都会失败。以下是一个hello world dpr的示例:

program HelloWorld;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils;

begin
  try
     Writeln('Hello, World!');
     Readln;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.

我看到这个问题是因为应用程序验证器在启动应用程序时抛出Int 3(第一次机会)失败了?为什么x64会失败而x86不会?是否有办法停止这个错误? 我肯定是在x64文档中错过了什么,因为我真的对这种行为感到困惑。

感谢所有能够回答我的人。

Grandpa


你尝试过以管理员权限运行应用程序和应用程序验证器吗? - onedevteam.com
@RRUZ 抱歉我回复这么晚,这里的天气变得很糟糕。以更高的权限运行并不重要。 - Grandpa
省略异常陷阱也无济于事。 - Grandpa
我可以简单地启动一个新应用程序,一个仅包含主窗体的“Hello World”表单应用程序,但它也会失败。任何为x64编译的应用程序都会发生这种情况,而x86则没有问题。我在微软网站上读到,他们认为x86处理异常不正确,并正在尝试在x64中修复此问题。我个人并不介意这一点,因为我当然可以捕获第二次机会的异常。然而,我的客户坚持要求纠正这个问题,并且我提供的软件将在应用程序验证器下运行。所以我想可能是我在x64方面遗漏了一些微不足道的东西。 - Grandpa
如果编译上述应用程序时,其他人是否也遇到了这种情况?我已经重新安装了Rad Studio很多次,认为可能是安装问题,甚至已经达到了注册限制。我也使用了Update 3,但我根本不明白这是否是所有机器、Borland问题还是Application Verifier问题。如果有人有线索,我会接受任何和所有的帮助。谢谢。 - Grandpa
显示剩余3条评论
1个回答

2

通过安装Application Verifier 4.1.1078解决。之前使用的是4.0.0665,会“总是”失败。关闭防病毒软件后,版本4.1.1078按预期工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接