我们有一个在Vista和Win7上运行良好的DLL一段时间,但是当在XP上运行时,当调用LoadLibrary()来加载它时,我们得到错误“无法find指定的过程” 。
我已经试过通过configuration文件选项Dependency Walker运行它,全球标志设置为显示加载程序捕捉和唯一看似有用的信息,我可以从它是:
LDR: Snapping imports for MyDll.dll from KERNEL32.dll LDR: LdrGetProcedureAddress by NAME - RtlGetLastWin32Error LDR: exception c0000139 thrown within function LdrpSnapIAT Exception record: 0012E490 Context record: 0012E4A4 Context->Eip = 7C9673BE Context->Ebp = 0012E7C0 Context->Esp = 0012E770 LDR: LdrpSnapIAT - caught exception c0000139 snapping thunks (#2) LDR: LdrpWalkImportTable - LdrpSnapIAT #2 Failed with status c0000139
我相信exceptionc0000139是'入口点未find'。
我们已经注意确保没有任何对后XP API的直接依赖(有一些,但是这些是用LoadLibrary()dynamic加载的)。 该DLL是用WINVER和_WIN32_WINNT设置为0x0501 。 该库的入口点在依赖关系监视器中显示的导出中可见,并且没有明显的缺失依赖关系。 相同的应用程序运行在Vista和Win7绝对好。 早期版本的DLL在XP上运行得很好(由于这个组件的性质,很难看出哪些改变导致了事情中断)。
如何以编程方式读取Windows操作系统中的sqlite数据库的内容?
为什么我会检查有效的input时甚至使用istream :: ignore?
为什么pcap_loop()和获取数据包之间有很长的延迟?
grep如何工作?
了解Windows通用应用程序(UWP)中的扩展执行会话
编辑:我想我打折的其他东西:
Visual Studio运行时被安装
来自工作DLL和不相同的清单文件
还有什么明显的我失踪了?
使用C ++ Win32 API禁用MessageBox右侧顶部的X-Button图标?
模拟Windows的浏览器stream量
Linux framebuffer像素位域通用实现
SelectQuery吃掉了100%的cpu
我不知道这是否会帮助你,但我今天有与装载机捕捉完全相同的问题。 事实证明,我的问题是在depends.exe中可见,但我不知道dlls被粉红色的意义…我只有诊断出口的问题与依赖,而不是进口问题。
我的问题是,我正在使用“RegGetValue”,它只在Vista +上可用。 不幸的是,如果您在Windows XP上使用仅Vista的API,则没有适当的错误报告。 取决于在进口部分显示这样的:
我注意到你的问题是与coreel32.dll,而不是Advapi.dll,所以检查与取决于进口…
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。