簡體   English   中英

C#奇怪的異常錯誤

[英]C# weird exception error

我正在從本地.NET dll調用一個函數,如下所示:

string v = myDLL.GetValueFromString("header");
MessageBox.Show(v);

程序執行后,我收到奇怪的錯誤(在執行此功能的行上):“試圖讀取或寫入受保護的內存。這通常表明其他內存已損壞。”

此錯誤消息是什么意思? 有辦法解決這個問題嗎?

這是一個AccessViolationException。 這是一個“硬”異常,處理器實際上在嘗試執行機器代碼時崩潰。 通常是因為它試圖通過錯誤的指針值訪問未映射的內存。 對於本地代碼,這太普遍了,尤其是與C字符串一起工作的那種代碼。

我猜你沒有寫這段代碼,你需要作者的幫助。 向他發送一個重現該問題的小型測試程序。 如果您想親自調試,則需要DLL的源代碼並將調試器切換到混合模式,以便可以調試C#和本機代碼。 在“項目+屬性”的“調試”選項卡上,選中“啟用非托管代碼調試”選項。 在要調用的本機函數中設置一個斷點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM