C++ 创建system()函数的Mac动态库时出现的问题

C++ 创建system()函数的Mac动态库时出现的问题,c++,c,macos,codeblocks,dylib,C++,C,Macos,Codeblocks,Dylib,我正在尝试编写一个动态库(代码::块),它将从Mac应用程序调用,它只调用标准的C system()函数,同时在第二个参数(1或0)中提供是否等待完成的选项 我将示例代码放在pastebin上,而不是将其嵌入此处,因为无论出于何种原因,post editor都不允许我像预期的那样将整个代码片段放在代码框中,这有点烦人 现在,在调用动态库时,(我记不起我使用的编译器,GCC或LLVM),我在GameMaker Studio中使用以下代码: ExecuteShell('open /Applicat

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

我将示例代码放在pastebin上,而不是将其嵌入此处,因为无论出于何种原因,post editor都不允许我像预期的那样将整个代码片段放在代码框中,这有点烦人

现在,在调用动态库时,(我记不起我使用的编译器,GCC或LLVM),我在GameMaker Studio中使用以下代码:

ExecuteShell('open /Applications/Calculator.app',0);
但是,计算器不会运行。尝试将第二个参数改为1,我得到了相同的结果。计算器不运行。没有错误。它似乎完全忽略了我的代码,所以我想知道我写动态库的方式是否有问题

我看看其他人提出的这个问题:

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

我在用别人的Mac电脑把我的这个小项目移植到Mac电脑上,不管怎样,我在尝试再次构建它之前,试图在这里获得帮助,因为我在尽量减少我对使用我朋友的Mac电脑的要求。希望是,我所做的下一个构建,只需稍加调整,就能最终运行计算器


提前谢谢

“调用标准C system()函数,同时在第二个参数(1或0)中提供是否等待完成的选项。”-不可能;system()总是等待执行的命令完成。@NeilButterworth无论我在Linux上使用pastebin链接中的代码还是fork(),代码都不会等待完成。它与游戏代码一起运行。这在Mac上不同吗?
string command = "open " + filePath;
system(command.c_str());