使用Lua解释器创建新进程,在传递参数时出现失败。

我需要帮助在CreateProcess()中传递参数 //Windows

我想要:

BOOL status = CreateProcess(L"C:\\Program Files (x86)\\Lua\\lua52.exe",
NULL, NULL, NULL, FALSE, NULL, NULL, NULL, &si, &pi);

但是我想要传递一些参数....

Lua解释器接受带有Lua脚本的文件,所以我已经准备好了,想要执行:

lua52 C:\1.lua

例如...

我有一些Lua脚本的路径,想要让Lua解释器解释它,然后从创建的进程中获取Lua程序的结果。

我已经试过了一些方法,但没有成功。

点赞
用户894862
用户894862
static STARTUPINFO si;
static PROCESS_INFORMATION pi;

int main()
{
    ZeroMemory(&si, sizeof si);
    ZeroMemory(&pi, sizeof pi);

    si.cb = sizeof si;

    wсhar_t command[] = L"\"C:\\Program Files (x86)\\Lua\\lua52.exe\" C:\\1.lua";

    BOOL status = CreateProcess(0, command, 0, 0, FALSE, 0, 0, 0, &si, &pi);
}
静态 STARTUPINFO si;
静态 PROCESS_INFORMATION pi;

整型主函数 ()
{
    ZeroMemory (&si, sizeof si);
    ZeroMemory (&pi, sizeof pi);

    si.cb = sizeof si;

    wсhar_t 命令 [] = L"\"C:\\Program Files (x86)\\Lua\\lua52.exe\" C:\\1.lua";

    布尔型状态 = CreateProcess (0, 命令, 0, 0, FALSE, 0, 0, 0, &si, &pi);
}
2012-06-28 15:50:33
用户894862
用户894862

不要忘记:

此函数的 Unicode 版本 CreateProcessW 可以修改此字符串的内容。因此,此参数不能是指向只读内存(例如 const 变量或文字字符串)的指针。如果此参数是常量字符串,则该函数可能会导致访问冲突。

2012-07-04 13:04:45