delphi - 使用环境变量 "The program can' 进行调试时无法启动,因为 ....dll 丢失”

标签 delphi debugging dll delphi-xe2

在这些情况下,在 Delphi XE2 update 4 中调试可执行文件时,我收到了进一步提到的错误:

  • 这取决于来自 WebShpere 的 mqic.dll(位于 C:\Program Files\IBM\WebSphere MQ\bin\mqic.dllC:\Program Files\IBM\WebSphere MQ\bin 位于系统路径上(而不是用户路径上)。
  • 正在使用运行 -> 参数 -> 调试器 -> 环境 block 中的覆盖环境变量进行调试code> -> 用户覆盖
  • 在同一属性页上包含系统变量已选中

这就是错误(这是一个标记为“系统错误”的 Windows DLL 加载错误)。

The program can't start because mqic.dll is missing from your computer. Try reinstalling the program to fix this problem.

一些注意事项:

  • 我以普通用户身份进行调试(无论如何,这都是正常做法,但在这种情况下,由于客户端的策略,我无法成为管理员)。
  • 一旦我删除环境变量,它就会起作用(但程序会崩溃,因为它确实需要信息)。
  • 在 Delphi 启动之前指定环境变量很麻烦,但作为临时解决方法是可行的(我需要在调试以测试不同场景时经常更改该变量;Delphi 的启动/关闭时间使这变得乏味)。
  • 我不能没有环境变量,因为对于没有源代码的应用程序来说,它是必需的,并且无法及时重写以使其逐步淘汰

这是事件日志显示的内容:

Faulting application name: CAS400NTMQ.exe, version: 1.1.4639.52512, time stamp: 0x50508180
Faulting module name: ntdll.dll, version: 6.1.7601.17725, time stamp: 0x4ec49b60
Exception code: 0xc0000005
Fault offset: 0x0005333f
Faulting process id: 0x4b20
Faulting application start time: 0x01cd90e36bb90816
Faulting application path: C:\Users\...\bin\CAS400NTMQ.exe
Faulting module path: C:\Windows\SYSTEM32\ntdll.dll
Report Id: a9853965-fcd6-11e1-ae66-78e3b5ca2514

问题:是否还有比我上面使用的解决方案更简单的解决方案?

最佳答案

根据Andreas Hausladen's latest blog post ,和his answer here ,这个 XE2 错误已由 IDEFixPack 解决。在 XE3 中不需要,因为 XE3 解决了这个问题。

因此,我怀疑如果您能够设法获得IDEFixPack,这可能是最有效的解决方法安装在 native 上。即使您无法安装 IDEFixPack,这个答案仍然对其他读者有用。

关于delphi - 使用环境变量 "The program can' 进行调试时无法启动,因为 ....dll 丢失”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12391105/

相关文章:

delphi - Indy 在 Windows 上支持原始 TCP 套接字吗?

delphi - 使用 fontdialog 和 RichEdit 更改事件控件

java - 如何从 Spring boot maven web 项目调用 dll?

objective-c - xCode 4 中的异常没有调用堆栈

c++ - 调试使用调试标志运行的代码和使用 opt 标志运行的段错误

c++ - 从 Netbeans 中的应用程序项目生成 .dll

c++ - 找不到 DLL 入口点

delphi - 如何获取 TMemo 中的文本位置(以像素为单位)?

.net - .NET 是否有类似于 Delphi 的 EAbort 的异常?

actionscript-3 - Actionscript 3.0 中的行号常量?