我正在尝试通过WINE使Win32程序在Mac上运行。 该程序用于使用CreateProcess()API将另一个Win32程序作为外部进程调用。 我现在希望它通过WINE在Mac上调用UNIX shell脚本。
我成功创建了一个运行简单命令的进程:/usr/bin/touch /Users/username/Desktop/file
CreateProcess( NULL, const_cast<LPWSTR>( (LPCWSTR) _T("/usr/bin/touch /Users/username/Desktop/file") ), NULL, NULL, FALSE,
NORMAL_PRIORITY_CLASS | CREATE_NO_WINDOW, NULL, NULL, &si, &pi );
但是,我尝试使用/bin/sh /Users/username/Desktop/my.sh
替换命令
这次失败了。
起初我以为这是由于路径问题,我以为WINE会使用Windows路径。所以我尝试加载ntdll.dll,然后使用API wine_unix_to_nt_file_name()将脚本路径转换为WINE风格的Windows路径。它仍然不起作用(my.script只调用上面列出的touch
命令。)
我想知道我的目标是否被误导了。是否有可能实现我想要的葡萄酒?