1

我正在尝试通过 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 This time it failed 替换命令。

起初我以为是路径问题,我以为 WINE 会使用 Windows 路径。所以我尝试加载 ntdll.dll,然后使用 API wine_unix_to_nt_file_name() 将脚本路径转换为 ​​WINE 风格的 Windows 路径。它仍然不起作用(my.script 只是调用touch上面列出的相同命令)。

我想知道我的目标是否被误导了。是否有可能用 WINE 实现我想要的?

4

0 回答 0