【问题标题】:Wish to terminate main.exe after execute DLL (C++)希望在执行 DLL (C++) 后终止 main.exe
【发布时间】:2021-04-13 00:24:50
【问题描述】:

我在执行我的 test.dll 的移动设备上运行我的 main.exe。现在,在 dll 启动后,我需要在 dll 仍在运行时对 main.exe 进行 wm_destroy 以进行交换。我对这个领域很陌生,我认为这违反了所有逻辑。但也许有办法在 dll 运行时更改 main.exe。

提前谢谢!

【问题讨论】:

    标签: c++ dll windows-ce


    【解决方案1】:

    加载 DLL 时,它会链接到主可执行文件的地址空间。它没有也不应该独立存在。 DLL 不会独立“运行”/“执行”。

    您想要做的不是 DLL 的用途。您可能希望生成一个新的独立进程,然后从那里将 WM_DESTROY 发送到父进程。

    【讨论】:

      【解决方案2】:

      这甚至可以达到什么目的?如果 dll 自己运行,它是一个 .exe,应该有自己的 WinMain,而不仅仅是 DllMain。实际上它们具有相同的格式,.dll 和 .exe 都是 PEXE 文件并且可以导出。从非子进程的运行模块中获取导出函数的地址有点棘手,但某些分析器工具是这样工作的,包括 VS 分析器。

      在 Windows 中,有一个实用程序,其唯一目的是运行一个 dll,rundll32,您可以将其作为子进程生成,但它需要提升权限。

      【讨论】:

        猜你喜欢
        • 2020-10-11
        • 2018-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-21
        • 1970-01-01
        • 1970-01-01
        • 2014-05-15
        相关资源
        最近更新 更多