我正在使用包含非託管代碼與特定硬件進行交互的dll,我試圖從C#中使用它,但我不斷收到AccessViolationException。AccessViolationException,試圖讀取或寫入受保護的內存
是什麼導致它,我該如何解決它?
我正在使用包含非託管代碼與特定硬件進行交互的dll,我試圖從C#中使用它,但我不斷收到AccessViolationException。AccessViolationException,試圖讀取或寫入受保護的內存
是什麼導致它,我該如何解決它?
大約95%的非託管代碼的所有失敗模式都會產生訪問衝突。您可以通過使[DllImport]聲明錯誤來觸發這種失敗模式。但是發佈的DoesExist()不能觸發一個。
請與供應商或DLL的作者聯繫以尋求支持。如果讓它很容易失敗,那麼它們應該在重現故障和使用調試器及其源代碼進行診斷方面遇到一些麻煩。
爲了完整性,AccessViolation的最典型的原因:
奇怪的是,他的例子沒有輸入參數或返回值。 – 2010-04-01 19:34:19
您沒有詳細說明DLL和用於理解問題的方法 - 我寫了simi代碼很多次都沒有例外。 – 2010-04-01 19:33:25