Запуск DLL как exe - PullRequest
       16

Запуск DLL как exe

1 голос
/ 28 января 2012

Можно ли загрузить собственную (C ++) DLL как исполняемый файл?предпочтительно прямо из памяти, не создавая EXE на жестком диске или что-то подобное?

Ответы [ 4 ]

4 голосов
/ 28 января 2012

Microsoft предоставляет Rundll32.exe, которые можно использовать для выполнения функций DLL, которые были явно закодированы для поддержки этого использования.

3 голосов
/ 28 января 2012

Что конкретно это будет означать? Например, какую точку входа он будет использовать в DLL?

Единственный способ, которым это на самом деле будет работать, - это если бы библиотека DLL была специально написана для этого. И если бы это было так, то не совсем понятно, почему вы не просто создали бы исполняемый файл вместо DLL в первую очередь.

В качестве примера можно привести заглушку RunDLL32.exe. Он предназначен для выполнения функции из DLL с определенной подписью в качестве точки входа. Если библиотека DLL не была специально разработана для соответствия этой подписи, то дела идут не так . Если вам нужна функциональность, подобная этой, вы можете рассмотреть возможность соответствия сигнатуры функции, требуемой для RunDLL32.exe, и использования ее для «выполнения» вашей DLL.

2 голосов
/ 28 января 2012

Посмотрите вверх rundll32.exe.Но тебе лучше точно знать, что ты делаешь.Я не уверен, честно.

0 голосов
/ 28 января 2012

Вы можете использовать LoadLibrary вызов WinAPI для загрузки DLL.

...