我有一个.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