Типа ClassLoader, только в C++... Есть запущенная прога, которая что-то делает. Её пересобирать нельзя. Как подключить во время выполнения объектный файл? В ядре же это как-то реализовано...
я так понял ты хочешь взять .obj и выполнить его?! ну "тупо" сделать это не получится однозначно, т.к. тебе придется не только распарсить obj, найти нужны код, но еще и разобраться со всеми ссылками на данные и функции, которые он вызывает. конечно, если взять функцию вида xor eax,eax/mov ecx,69/xxx: add eax,eax/dec ecx/jnz xxx, то ее можно выполнить и по тупому, просто загрузив в блок памяти с атрибутом исполняемого. вот только боюсь я, что тебе совсем не такую функцию грузить надо. а раз так - тебе фактически потребуется написать свой линкер ну или значительную его часть.
Да. Как ядро грузит модули? Туда объектный файл устанавливается ВО ВРЕМЯ ВЫПОЛНЕНИЯ. Видел еще проги, только без сорцов. Плагины к ним - не библиотеки, а объектные файлы. Как это можно слинковать без линкера?
Ну так этот объектник импортирует только из самого ядра, как я помню архитектуру installable modules в лине. Видимо, там действительно реализован линкер, т.к. такой объектный файл аналогичен, практически, DLL/.so
Вот именно, что SharedObject загрузить - не проблема... Буду копать инет - может кто-то уже реализовал, правда по теме в гугле пока ниче нет.
Короче у GCC есть такая фича, только она не работает. При вызове, мне говорят что PARAMS[] не того типа. Я там 0 ставлю. Буду копать дальше
http://www.linux-m32r.org/lxr/http/source/kernel/module.c#L1955 если не разберешься, могу ответить на вопросы
device придется подключаться к процессу и внедрять что-то наподобие компоновщика объектных файлов посмотри ссылку, что я дал там процесс отображения в принципе не сложный