狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

[點(diǎn)晴永久免費(fèi)OA]System.AccessViolationException: 嘗試讀取或?qū)懭胧鼙Wo(hù)的內(nèi)存。這通常指示其他內(nèi)存已損壞。

admin
2019年1月12日 17:55 本文熱度 3627

昨天寫的RC4的加解密程序,當(dāng)C#調(diào)用C的dll時(shí)就會出現(xiàn)這個(gè)提示,嘗試怎么修改都不行。Debug跟蹤顯示,應(yīng)該返回string類型的函數(shù)返回值為空。也不知道怎么調(diào)試dll,dll里下的斷點(diǎn)始終提示無效。單獨(dú)運(yùn)行dll里的函數(shù),結(jié)果沒有問題。幾乎可以斷定是函數(shù)返回的地方出錯了。


終于搞清楚錯誤的真正原因了。詭異的是,這個(gè)錯誤是我趴在桌子上半夢半醒的狀態(tài)下想到的。更詭異的是,睡醒了之后還記得睡夢中的想法。嘗試修改錯誤,竟然真的就成功了。有點(diǎn)玄......


這個(gè)錯誤其實(shí)不應(yīng)該犯,《C專家編程》和《C陷阱與缺陷》里都提到過,自己也做了這條的筆記。只是之前幾乎一樣的dll調(diào)用都做過,也都成功運(yùn)行得到了正確的結(jié)果,就以為dll里不會出什么錯,一直在C#的代碼里找錯。而且同樣的錯誤提示也見過,只是那時(shí)是糊里糊涂的把數(shù)組賦個(gè)初始值就解決了,也就沒太在意。



錯誤提示: 

有關(guān)調(diào)用實(shí)時(shí)(JIT)調(diào)試而不是此對話框的詳細(xì)信息,
請參見此消息的結(jié)尾。

************** 異常文本 **************
System.AccessViolationException: 嘗試讀取或?qū)懭胧鼙Wo(hù)的內(nèi)存。這通常指示其他內(nèi)存已損壞。
   在 RC4_GUI.RC4_form.RC4_decrypt(String strings_hex, Int32 start, Int32 length)
   在 RC4_GUI.RC4_form.decrypt_button1_Click(Object sender, EventArgs e) 位置 F:\Crypt\Modern Cryptology\GUI\RC4_GUI\Form1.cs:行號 136
   在 System.Windows.Forms.Control.OnClick(EventArgs e)
   在 System.Windows.Forms.Button.OnClick(EventArgs e)
   在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   在 System.Windows.Forms.Control.WndProc(Message& m)
   在 System.Windows.Forms.ButtonBase.WndProc(Message& m)
   在 System.Windows.Forms.Button.WndProc(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** 已加載的程序集 **************
mscorlib
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.4927 (NetFXspW7.050727-4900)
    基本代碼: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
RC4_GUI
    程序集版本: 1.0.0.0
    Win32 版本: 1.0.0.0
    基本代碼: file:///F:/Crypt/Modern%20Cryptology/GUI/RC4_GUI/bin/Debug/RC4_GUI.exe
----------------------------------------
System.Windows.Forms
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.4927 (NetFXspW7.050727-4900)
    基本代碼: file:///C:/windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.4927 (NetFXspW7.050727-4900)
    基本代碼: file:///C:/windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.4927 (NetFXspW7.050727-4900)
    基本代碼: file:///C:/windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.4927 (NetFXspW7.050727-4900)
    基本代碼: file:///C:/windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
 System.Xml
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.4927 (NetFXspW7.050727-4900)
    基本代碼: file:///C:/windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
mscorlib.resources
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.4927 (NetFXspW7.050727-4900)
    基本代碼: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
System.Windows.Forms.resources
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.4927 (NetFXspW7.050727-4900)
    基本代碼: file:///C:/windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_zh-CHS_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------

************** JIT 調(diào)試 **************
要啟用實(shí)時(shí)(JIT)調(diào)試,
該應(yīng)用程序或計(jì)算機(jī)的 .config 文件(machine.config)的 system.windows.forms 節(jié)中必須設(shè)置
jitDebugging 值。
編譯應(yīng)用程序時(shí)還必須啟用
調(diào)試。

例如:
<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>


啟用 JIT 調(diào)試后,任何無法處理的異常
都將被發(fā)送到在此計(jì)算機(jī)上注冊的 JIT 調(diào)試器,
而不是由此對話框處理。

解決方案: 

將dll里函數(shù)需要返回的局部變量聲明為static。(就這么簡單。原因就不重復(fù)了)


教訓(xùn): 

1、不要犯經(jīng)驗(yàn)主義的錯誤,有些經(jīng)驗(yàn)可能是錯誤的。 

2、發(fā)現(xiàn)bug要及時(shí)處理,不可為了趕工而忽略。隨機(jī)性出現(xiàn)的bug更要注意,因?yàn)檫@類bug更難發(fā)現(xiàn),也就更能解決。


該文章在 2019/1/12 17:55:36 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved