аргументы командной строки

Tema05

Известный
Автор темы
1,474
439
Версия MoonLoader
.026-beta
Можно ли как-то достать в lua аргументы командной строки, которые были при запуске exe-шника игры?
 

whyega52

Гений, миллионер, плейбой, долбаеб
Модератор
2,798
2,659
Можно ли как-то достать в lua аргументы командной строки, которые были при запуске exe-шника игры?
Lua:
local ffi = require("ffi")



ffi.cdef[[
    const char* GetCommandLineA();
]]



print(ffi.string(ffi.C.GetCommandLineA()))
 

Tema05

Известный
Автор темы
1,474
439
Lua:
local ffi = require("ffi")



ffi.cdef[[
    const char* GetCommandLineA();
]]



print(ffi.string(ffi.C.GetCommandLineA()))
Всё оказалось гениально и просто. lua же запускается из под процесса гташки и имеет доступ к этой строке. Жаль только CommandLineToArgvW не робит
 

whyega52

Гений, миллионер, плейбой, долбаеб
Модератор
2,798
2,659
Жаль только CommandLineToArgvW не робит
Lua:
ffi.cdef[[
    const char* GetCommandLineA();
    const char* CommandLineToArgvW(const char* lpCmdLine, int* pNumArgs);
]]



local shell32 = ffi.load("shell32.dll")


local args = ffi.new("int[1]")
local out = shell32.CommandLineToArgvW(ffi.C.GetCommandLineA(), args)
print(ffi.string(out), args[0])
 

Tema05

Известный
Автор темы
1,474
439
Lua:
ffi.cdef[[
    const char* GetCommandLineA();
    const char* CommandLineToArgvW(const char* lpCmdLine, int* pNumArgs);
]]



local shell32 = ffi.load("shell32.dll")


local args = ffi.new("int[1]")
local out = shell32.CommandLineToArgvW(ffi.C.GetCommandLineA(), args)
print(ffi.string(out), args[0])
Фигню какую-то выдаёт. Первое это же указатель, почему он выводится как текст. А 2 значение почему-то всегда равно 1