我的.Net程序存在严重问题。它调用本地dll,然后立即崩溃,因为它找不到本地方法。这是我们以前见过的行为,即C#编译器以其无限的智慧设置了程序兼容DEP的标志,即使它调用的本地dll显然不适用。Windows 7中的可能的数据执行保护(DEP)问题
对于此问题,我们有标准解决方法,其中标志在生成后步骤中设置为“不兼容”,并且此工作正常。除了在我的机器上以外。我有Windows 7 32位,并且该程序在我们拥有的Win 7 64位机器以及Vista和XP上都能正常工作。
但是,在我的机器上,DataExecutionPolicy_SupportPolicy为0,即我们已成功切换DEP。有没有人知道它是否仍然可以采取行动?或者其他可能具有相同效果的机制?
我们现在还检查了另一台新安装的Win7 32位机器(也是我的Thinkpad),它也在那里工作。我们比较了所有的BIOS设置,它们是相似的(我的是T61,另一个是R60)。
从本机程序调用时,有问题的dll在我的机器上也能正常工作。我们正在用尽想法......任何帮助将不胜感激!
',由此C#编译器以其无限的智慧设置程序兼容DEP的标志,即使它调用本地dll显然不是.'无论如何重写所述标志以某种方式? (我来自零经验。) – Moshe 2010-04-08 20:35:11
据我所知,请参阅http://stackoverflow.com/questions/350977/how-to-make-my-program-dep-compatible/351087#351087了解如何在编译后执行此操作。 – 2010-04-09 07:27:50
如果您遇到来自DEP的问题,您的原生dll已损坏。关闭DEP是一项兼容性措施。 – Yuliy 2010-04-12 08:28:22