Мне интересно взять полнофункциональное приложение MFC (окна, меню, диалоговые окна и т. Д.) И превратить его в DLL, чтобы его можно было перенести в виртуальное адресное пространство других исполняемых файлов.
Я хотел бы знать, возможно ли это или вообще возможно, прежде чем я потрачу на это слишком много времени.
Я не думаю, что CreateProcess будет работать, потому что он не (?) Приводит к процессув том же адресном пространстве, что и вызывающая сторона, как в DLL.
Я провел некоторое исследование и обнаружил следующее:
Страница в MSDN, "TN011: Использование MFC в качествеЧасть DLL ", которая полезна, но написана с точки зрения того, что вы пишете DLL с нуля.
Следующая цитата о различиях между EXE-файлами и DLL:
" Приложениеможет владеть такими вещами, как стек, глобальная память, файловые дескрипторы и очередь сообщений, но библиотека DLL не может. "
Я понимаю основы библиотек DLL, но большинство библиотек DLL не предоставляют такую же функциональностькак полноРаздутые приложения.
Было бы достаточно заменить код запуска DLL CRT чем-то, что создает новый поток, эмулирующий запуск CRT в стиле WinMain?Эта идея обязательно потребует выталкивания всего этого кода запуска из реального DllMain, чтобы избежать блокировок загрузки DLL.
Я на правильном пути или есть какие-то проблемы, связанные с DLL, которые делают это несостоятельным?
Есть ли какой-нибудь простой способ обернуть исполняемый файл в DLL, о которой я не знаю?
Спасибо, что прочитали это.