为system()函数

时间:2017-03-11 21:58:53

标签: c++ c macos codeblocks dylib

我正在尝试编写一个DYLIB(在Code :: Blocks中),它将从Mac应用程序中调用,它只调用标准的C system()函数,同时提供是否等待完成的选项,在第二个参数中,(1或0)。

我将我的示例代码放在pastebin上,而不是将其嵌入到这里,因为无论出于何种原因,帖子编辑器都不允许我将整个代码段放在代码框中,就像它应该的那样,这有点烦人。

http://pastebin.com/0ZfbD3Dx

现在在调用DYLIB时,(我记不起我使用的编译器,GCC或LLVM),我在GameMaker Studio中使用此代码:

ExecuteShell('open /Applications/Calculator.app',0);

但是,计算器无法运行。试图将第二个参数更改为1,我得到相同的结果。计算器无法运行。没有错误。它似乎一直忽略了我的代码,所以我想知道我的DYLIB编写方式是否有问题。

我看看别人有这个问题:

https://stackoverflow.com/questions/859517/osx-equivalent-of-shellexecute#=

string command = "open " + filePath;
system(command.c_str());

我看到他们使用了.c_str()。我应该使用.c_str()吗?那是问题吗?我现在使用的代码是system(fname);。我应该将其更改为system(fname.c_str());吗?我可以使用类型char *作为参数fname吗?或者因为我正在使用该类型,我是否必须将其转换/转换为string类型?

我正在使用其他人的Mac移植我的这个小项目在Mac上工作,无论如何我想在这里寻求帮助,然后再尝试再次构建它,因为我试图尽可能减少我的数量要求使用我朋友的Mac电脑。希望是,我做的下一个构建,只需很少的调整,最终将工作并运行计算器。

提前致谢!

0 个答案:

没有答案