0

我的 .Net 程序存在严重问题。它调用本机 dll,然后由于找不到本机方法而立即崩溃。这是我们之前看到的行为,C# 编译器以其无限的智慧设置程序与 DEP 兼容的标志,即使它调用了一个明显不兼容的本机 dll。

我们对此有标准的解决方法,在构建后步骤中将标志设置为 Not DEP Compatible,这工作正常。除了在我的机器上,到处都是。我有 Windows 7 32 位,该程序在我们拥有的 Win 7 64 位机器以及 Vista 和 XP 上运行良好。

但是,在我的机器上,DataExecutionPolicy_SupportPolicy 为 0,即我们已成功关闭 DEP。有谁知道在某些情况下它仍然可以起作用吗?或者任何其他可能具有相同效果的机制?

我们现在还检查了另一台新安装的 Win7 32 位机器(也是我的 Thinkpad),它也可以在那里工作。我们比较了所有的 BIOS 设置,它们是相似的(我的是 T61,另一个是 R60)。

当从本机程序调用时,有问题的 dll 在我的机器上也可以正常工作。我们的想法已经用完了......任何帮助将不胜感激!

4

1 回答 1

0

好吧,问题毕竟是完全不同的东西。我的机器是唯一没有正确设置本机 dll 路径的机器;这导致 Win7 中的即时崩溃,而在 XP 中曾经有一个消息框给出(高度神秘的)发生的事情的想法。

所以我们可以免除 DEP 的任何责任。我将它留在标题中,以便其他有同样怀疑的人记得检查他们的文件路径!

于 2010-04-12T08:26:22.950 回答