我的.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