Я хотел бы построить фальшивый хост Gimp в C# для запроса /запустить плагин Windows Gimp.
для справки, в конце этого сообщения вы найдете то, что я понял из протокола, чтобы поговорить с плагином Gimp. 3 вещи
Используйте CreatePipe из kernel32, затем ioChannel.fromhandle
// сбои с системой. Iochannel (fd [0]);
// не удастся после
Некоторые секунды с (0xc0000409)
Использовать _pipe из msvcrt.dll then _get_osfhandle (fd [0]) ) ) ) ) ) ) )
Программа собирается с использованием Visual Studio в качестве «любого ЦП» без «предпочтения 32 бита».
Глиб ссылается через NUGET. < /p>
==== />
Open pipe;
Fork the program;
run '"C:\Program Files\GIMP 3\lib\gimp\3.0\plug-ins\fractal-explorer\fractal-explorer.exe" -gimp 277 5 4 -query 0' as the child
ping/pong text in the трубы.ARG_PROGNAME, // self explaining
ARG_GIMP, // string "-gimp"
ARG_PROTOCOL_VERSION, // 277 looks strange but will pass it anyways
ARG_READ_FD, // int that maps the file descriptor for reading; here 5
ARG_WRITE_FD, // int that maps the file descriptor for reading; here 4
ARG_MODE, // string '-run', '-query','-init'
ARG_STACK_TRACE_MODE, // debug mode 0 = no debug
[/code]
Команды будут прочитаны в плагине
Я хотел бы построить фальшивый хост Gimp в C# для запроса /запустить плагин Windows Gimp.
для справки, в конце этого сообщения вы найдете то, что я понял из протокола, чтобы поговорить с плагином Gimp. 3 вещи [list] [*] Используйте CreatePipe из kernel32, затем ioChannel.fromhandle
// сбои с системой. Iochannel (fd [0]);
// не удастся после Некоторые секунды с (0xc0000409)
[*] Использовать _pipe из msvcrt.dll then _get_osfhandle (fd [0]) ) ) ) ) ) ) ) Программа собирается с использованием Visual Studio в качестве «любого ЦП» без «предпочтения 32 бита». Глиб ссылается через NUGET. < /p> ==== />[*]Open pipe; [*]Fork the program; [*]run '"C:\Program Files\GIMP 3\lib\gimp\3.0\plug-ins\fractal-explorer\fractal-explorer.exe" -gimp 277 5 4 -query 0' as the child ping/pong text in the трубы.ARG_PROGNAME, // self explaining ARG_GIMP, // string "-gimp" ARG_PROTOCOL_VERSION, // 277 looks strange but will pass it anyways ARG_READ_FD, // int that maps the file descriptor for reading; here 5 ARG_WRITE_FD, // int that maps the file descriptor for reading; here 4 ARG_MODE, // string '-run', '-query','-init' ARG_STACK_TRACE_MODE, // debug mode 0 = no debug [/code] Команды будут прочитаны в плагине
см. https://gitlab.gnome.org/gnome/gimp/-/blob/master/libgimp/gimp.c строка 440 [code]... read_channel = g_io_channel_win32_new_fd (atoi (argv[ARG_READ_FD])); write_channel = g_io_channel_win32_new_fd (atoi (argv[ARG_WRITE_FD])); ... [/code] = это создаст iochannel для общения с родительским процессом.>