Jer*_*ers 4 delphi debugging dll delphi-xe2
在这些情况下,在Delphi XE2 update 4中调试可执行文件时,我得到了错误时提到的错误:
mqic.dll从Webshpere的即在C:\Program Files \IBM\WebSphere MQ\bin\mqic.dll和C:\Program Files\IBM\WebSphere MQ\bin是在系统路径上(不是用户路径上).Run- > Parameters- > Debugger- > Environment Block- >中的覆盖环境变量进行调试User overridesIncluding System Variables 在同一属性页面上检查这是错误(它是标记为"系统错误"的Windows DLL加载错误).
程序无法启动,因为您的计算机缺少mqic.dll.尝试重新安装该程序以解决此问题.
几点说明:
这是事件日志显示的内容:
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
Run Code Online (Sandbox Code Playgroud)
问题:还有其他解决方案或更简单的解决方法,而不是我上面使用的方法吗?
据安德烈亚斯Hausladen的最新博客文章,和他的答案在这里,这XE2错误是由IDEFixPack照顾.并且在XE3中不需要,因为XE3解决了这个问题.
所以我怀疑如果你能设法在这台机器上安装IDEFixPack,这可能是最有效的解决方法.即使您无法安装IDEFixPack,这个答案对其他读者仍然有用.
使用用户覆盖的环境变量处理Delphi XE2时出现了问题.以示例应用为例:
program Project1;
{$APPTYPE CONSOLE}
uses
System.SysUtils;
begin
Writeln(GetEnvironmentVariable('PATH'));
Readln;
end.
Run Code Online (Sandbox Code Playgroud)
当用完调试器或没有用户覆盖环境变量时,这会输出路径.但是只要在Run-> Parameters-> Environment Block中引入环境变量,它就会输出一个空字符串.
可能的解决方法似乎是覆盖所需的变量,在本例中为"PATH".然后程序可以再次输出(并可能使用)正确的路径.显然,这是一个相当有限的解决方法.一旦你使用了用户覆盖,你不仅会丢失'PATH'.示例程序仍然无法输出'APPDATA'.
以前的Delphi版本似乎没有这个问题.有关于质量控制的报告:包含系统变量不再起作用,在构建17.0.4625.53395中已关闭为"已修复".