我正在尝试编写一个DYLIB(在Code :: Blocks中),它将从Mac应用程序中调用,它只调用标准的C system()函数,同时提供是否等待完成的选项,在第二个参数中,(1或0)。
我将我的示例代码放在pastebin上,而不是将其嵌入到这里,因为无论出于何种原因,帖子编辑器都不允许我将整个代码段放在代码框中,就像它应该的那样,这有点烦人。
现在在调用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电脑。希望是,我做的下一个构建,只需很少的调整,最终将工作并运行计算器。
提前致谢!