我的 .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 在我的机器上也可以正常工作。我们的想法已经用完了......任何帮助将不胜感激!