1

我正在尝试在我的 Delphi 7 IntraWeb 应用程序中使用 COM DLL(用 Delphi 7 编写),但由于 DEP 而失败。我几乎可以肯定是 DEP 阻止了我使用 DLL,因为如果我将 IntraWeb 应用程序编译并作为独立服务器运行,一切正常。但是,将其作为 ISAPI DLL 编译和运行时,它会失败。

在 WinXP(使用 IIS 6)上,我可以将 DllHost.exe 添加到 DEP 并且一切正常。当然,我真的不想这样做。在 Win7/2008 (IIS 7) 上,这不是一个选项。

当从 IntraWeb ISAPI DLL 调用时,有人能指出一个可以帮助我让我的 COM DLL 工作的方向吗?

我需要对 COM DLL 做些什么吗?我可以在某处添加任何权限吗?

谢谢,迈克尔

4

1 回答 1

0

我会将 dll 托管在本地可执行文件中,调用方法直到崩溃发生。您可以在自己的机器上启用 DEP 来执行此操作。

不幸的是,Delphi 7本身在启用数据执行保护的情况下崩溃,此外还有 TOndrej 提到的 RTL/VCL 中的内存违规。

这就是让 COM dll 与 DEP 一起工作所需要做的事情 - 找到错误并修复它们。

于 2012-05-31T15:25:27.670 回答