动态卸载Dll

时间:2016-01-03 00:30:52

标签: winapi dll d

我已经尽力将注入的Dll从C ++转换为D,并且当我按下F7时,我想要动态卸载Dll。 在C ++中,使用FreeLibraryAndExitThread让Dll自行卸载很简单,但是当在D Dll中使用时,该方法似乎不起作用。 在这里,您可以看到正在运行的C ++代码:

// Module.cpp
void Module::QuitThread()
{
    while (true) {
        // KeyPress
        if ((GetAsyncKeyState(VK_F7) & 0x8000) != 0) {
            break;
        }

        Sleep(1);
    }

    FreeLibraryAndExitThread(Module::_hDllModule, 0);
}

我知道这是快速而肮脏的方式,但现在已足够了。这是D等价物:

// module.d
private void quitThread()
{
    while (true) {
        // KeyPress
        if (GetAsyncKeyState(VK_F7) & 0x8000) {
            break;
        }

        Sleep(1);
    }

    FreeLibraryAndExitThread(_hModule, 0);
}

这是预期的行为吗?我该如何卸载D Dll?

0 个答案:

没有答案