2010-04-20 18 views
0

我正在開發一個使用非託管C++庫的小型C#winforms應用程序。 我無法訪問此庫的代碼。Visual Studio以外的AccessViolationException?

如果我在Visual Studio中,並且我的應用程序出現故障,請對庫進行一切調用find。一旦我運行CTRL + F5,就會得到一個AccessViolationException。 我做了一些測試,在.NET 2.0中創建了另一個winforms應用程序(其他人在.NET 4.0中),並且我沒有收到AccessViolationException。所以我想我會在.net 4.0解決方案中創建一個.net 2.0類庫並使用該類庫。這沒有幫助,但我有AccessViolationException。

嘗試設置允許不安全的代碼,優化代碼開啓和關閉,但沒有幫助。 爲什麼我在退出調試模式後會收到AccessViolationException?

謝謝

+0

如果您使用ctrl-F5啓動應用程序,然後在調試程序(調試 - >附加到進程)崩潰之前,會發生什麼? – Sam 2010-04-20 23:16:30

+0

然後它再次工作 VS回到調試模式,然後 我在想,它可能與彙編信任有關嗎? – Sven 2010-04-21 19:28:47

+0

你的應用代碼在哪裏?網絡驅動器? – MikeG 2010-09-24 22:54:52

回答

0

我只是偶然發現了同樣的問題。要重現調試器中的問題,我不得不去:

工具\選項 調試\一般

和禁止:禁止在模塊加載JIT優化(只有管理)。

當然,這個問題只會出現在優化代碼中。

+1

非常沒有時間的評論:最有可能與結構重新排列有關。嘗試在結構的頂部添加屬性[StructLayout(LayoutKind.Sequential)]。一個好的開始是http://msdn.microsoft.com/en-us/library/aa288468%28VS.71%29.aspx。 – 2011-09-13 18:29:10

相關問題