Я разрабатываю библиотеку, которая использует один или несколько вспомогательных исполняемых файлов в процессе ведения бизнеса. Моя текущая реализация требует, чтобы у пользователя был установлен вспомогательный исполняемый файл в системе в известном месте. Чтобы библиотека функционировала должным образом, вспомогательное приложение должно находиться в правильном месте и быть правильной версией.Распаковка исполняемого файла из библиотеки в C/C++
Я хотел бы удалить требование о том, чтобы система была сконфигурирована указанным выше способом.
Есть ли способ связать исполняемый файл-помощник в библиотеке, чтобы его можно было распаковать во время выполнения, установить во временном каталоге и использовать в течение одного прогона? В конце выполнения временный исполняемый файл можно удалить.
Я автоматически рассмотрел файл, содержащий массив без знака, содержащий текст исполняемого файла. Это будет сделано во время компиляции как часть процесса сборки. Во время выполнения эта строка будет записана в файл, создав исполняемый файл.
Можно ли выполнить такую задачу, не записывая исполняемый файл на диск (возможно, какой-то RAM-диск)? Я мог представить себе некоторые антивирусные сканеры и другое программное обеспечение безопасности, которые возражают против такой операции. Есть ли другие проблемы, о которых я должен беспокоиться?
Библиотека разрабатывается на языках C/C++ для использования на разных платформах в Windows и Linux.
Поместите вспомогательную функцию в lib и fork(), но не выполните exec(). Не уверен в Windows, хотя – sigjuice