【发布时间】:2020-01-08 18:19:03
【问题描述】:
我尝试在 Delphi 10.3.3 Rio 中调试一个简单的 64 位控制台应用程序:
program ShellLinkShortcutTest;
{$APPTYPE CONSOLE}
{$R *.res}
uses
JclShell,
System.SysUtils;
const
ShortcutFile = 'R:\myshortcut.lnk';
ShortcutTarget = 'C:\Windows\System32\notepad.exe';
function SaveShortcutShellLink(const AFile: string): string;
var
SL: JclShell.TShellLink;
HR: Integer;
begin
Result := 'error';
SL.Target := ShortcutTarget;
SL.Description := 'My description';
HR := JclShell.ShellLinkCreate(SL, AFile);
end;
begin
try
Writeln(SaveShortcutShellLink(ShortcutFile));
Readln;
except
on E: Exception do
begin
Writeln(E.ClassName, ': ', E.Message);
Readln;
end;
end;
end.
但是当我按下 F9 时,我会收到以下错误消息:
更奇怪的是:wmcipc.cpp文件不存在!
但是,调试与 32 位相同的程序没有问题。
我的操作系统:Windows 7 x64 SP1
这里有什么问题?
【问题讨论】:
-
您是否已通过代码查看错误发生的位置?
-
正如我所说,只要按 F9 就会出现错误消息。所以我什至无法单步执行代码。
-
你是在第一行代码设置断点吗?您的代码可以编译,但不会抛出您在我的盒子上看到的错误。我能够通过在 writeln 语句上设置断点来单步执行代码,并按照代码向下查找错误。您的 SaveSHortcutShellLink 始终返回“错误”并且不检查 HR 返回。
-
这与代码无关。我的机器上的调试好像坏了。