我有一個.NET C#控制檯應用程序,它在運行時加載多個Win32 DLL-s。當這個應用程序運行在我的開發人員機器上時(我的筆記本電腦上是32位Win7,我的桌面電腦上是64位Win7),有時會導致998錯誤。重新啓動開發人員機器後,此問題消失。這發生在測試服務器上(linux上的虛擬機,Win Server 2008 R2),但重啓後它也會消失。由於這個原因不容易重現。LoadLibrary 998錯誤
難以理解的原因,當我加載DLL依賴walker,它顯示絕對沒有問題,他們兩個依賴是Kernel32.DLL和MSVCRT.DLL。今天,這個錯誤發生在命令行啓動我的應用程序。我將應用程序加載到VS2010中,然後啓動,並且相同的dll-s加載沒有任何問題。停止它我再次從命令行啓動我的應用程序,並且它也加載了DLL-s。
這些DLL-s不是由我開發的,而是由第三方開發的公司,所以我看不到DLL-s的源代碼。任何想法發生什麼?
檢查了這一點,可能會有所幫助 - http://support.microsoft.com/kb/196069 – 2012-07-12 16:04:12
錯誤998('0x3e6')在'winerror.h'中定義爲'ERROR_NOACCESS','無效訪問內存位置'。快速搜索[MSDN](http://social.msdn.microsoft.com/Search/en-US?query=ERROR_NOACCESS&ac=8)表示這是由於LoadLibrary嘗試加載DLL時訪問衝突造成的。那裏有一些知識庫文章可能有所幫助。 – 2012-07-12 16:10:33
你能想象有時會發生「無法訪問內存」嗎? – 2012-07-12 17:56:40