gpt4 book ai didi

delphi - TOpenDialog 和空间

转载 作者:行者123 更新时间:2023-12-03 15:51:12 27 4
gpt4 key购买 nike

我在 Lazarus 上有一个项目,我想使用 gcc 编译源代码,为此我有一个名为 OpenDialog1TOpenDialog 和一个 TProcess > 称为AProcess

我使用以下代码调用 gcc:

procedure TFormMain.btCompileClick(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
AProcess := TProcess.Create(nil);
try
AProcess.CommandLine := 'gcc.exe ' + OpenDialog1.FileName;
AProcess.Options := AProcess.Options + [poWaitOnExit, poUsePipes];
AProcess.Execute;
OutputMemo.Lines.BeginUpdate;
OutputMemo.Lines.Clear;
OutputMemo.Lines.LoadFromStream(AProcess.Output);
OutputMemo.Lines.EndUpdate;
finally
AProcess.Free;
end;
end;
end;

它编译正常(Lazzarus 上的项目),但是当我测试它时,通过尝试编译源 test.c,该源位于 C:\Documents and Settings\Nathan Campos\Desktop,我在 OutputMemo 上得到了这个:

'C:\Documents': No such file or directory

然后,OpenDialog1 无法获取带空格的完整路径,或者 gcc 无法在带空格的文件夹中找到它。

有什么建议可以帮助我吗?

最佳答案

它需要用引号引起来,这样空格就不会出错。像这样:

AProcess.CommandLine := 'gcc.exe "' + OpenDialog1.FileName + '"';

这应该有效。

关于delphi - TOpenDialog 和空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1972380/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com