从Delphi项目运行终端时的分段错误

时间:2014-10-13 07:58:25

标签: macos delphi terminal segmentation-fault delphi-xe6

在我的 Delphi 项目中,我调用了一些终端命令来访问文件并进行一些更改。当我在 OS X 中运行时,终端命令无法正常工作。在乞讨时它表示许可否认。我通过使用chmod 777修复了这个问题。然后当我尝试创建一个.txt文件时,它会显示“ Segmentation fault :11”!尝试转换图像的命令根本不起作用。无论如何,当我直接在终端中编写它们时,它们都能正常工作,而不使用delphi。

这是我写的用来调用这两个终端命令的行:

_system(PAnsiChar(AnsiString('./dcmj2pnm '+ pathdcm + ' ' + pathbmp + ' +oj') ));
_system(PAnsiChar(AnsiString('./dcmdump '+ pathdcm +' > '+pathtxt) ));    

1 个答案:

答案 0 :(得分:0)

我终于解决了我的问题!我发布它以防万一有人会有同样的问题。 据我所知,系统无法正确地将字符串(终端的命令行)转换为PAnsiChar。所以我只是单独转换它然后调用终端。以下是我的代码行。

comm := dir+'\dcmj2pnm '+ pathdcm + ' ' + pathbmp + ' +oj';
comm1:= dir +'\dcmdump  '+ pathdcm +' > '+pathtxt;

 co := PAnsiChar(AnsiString(comm));
 co1 := PAnsiChar(AnsiString(comm1));

 _system(co);
 _system(co1);