要实现自定义的DLL在DNF.exe关闭时自动关闭,可以使用DLL的卸载事件来实现。

首先,在DLL的代码中定义一个全局变量用于保存DLL的模块句柄:

HMODULE g_hModule = nullptr;

然后,在DLL的入口函数中获取DLL的模块句柄并保存到全局变量中:

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
    if (ul_reason_for_call == DLL_PROCESS_ATTACH)
    {
        g_hModule = hModule;
        // DLL 初始化操作
    }
    else if (ul_reason_for_call == DLL_PROCESS_DETACH)
    {
        // DLL 卸载操作
    }

    return TRUE;
}

在DLL的卸载操作中,可以使用全局变量中的模块句柄来实现自动关闭:

void UnloadDLL()
{
    // 卸载操作,关闭资源等

    // 释放模块句柄
    if (g_hModule != nullptr)
    {
        FreeLibrary(g_hModule);
        g_hModule = nullptr;
    }
}

最后,在DNF.exe关闭时,调用DLL的卸载函数即可:

#include <Windows.h>

int main()
{
    // DNF.exe 相关代码

    // 关闭 DNF.exe 后,调用 DLL 卸载函数
    UnloadDLL();

    return 0;
}

这样,当DNF.exe关闭时,会自动调用DLL的卸载操作,从而实现自动关闭自定义的DLL

如果DNFexe关闭自定义的dll如何自动关闭请写出相应代码

原文地址: https://www.cveoy.top/t/topic/hTFd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录