成功注册dll,但是在regedit表中没有任何更改

时间:2019-05-14 05:54:39

标签: c++ dll filter

一个注册了虚拟摄像机的dll,当在具有管理员权限的cmd中使用通用的“ regsvr32 xxx.dll”时,我可以成功看到regedit表中的更改; 但是当我使用代码时,它返回true,但是没有任何变化。

BOOL RegisterFilter(const char* inFilterAx)
{
    typedef void (WINAPI * REGISTER_FUNC)(void);
    REGISTER_FUNC MyFunc = NULL;
    HMODULE hModule = ::LoadLibrary(inFilterAx);
    int ret = 0;

    if (!hModule)
    {
        ret = GetLastError();
    }

    if (hModule)
    {
        MyFunc = (REGISTER_FUNC)GetProcAddress(hModule, "DllRegisterServer");
        BOOL pass = (MyFunc != NULL);
        if (pass)
        {
            MyFunc();
        }
        ::FreeLibrary(hModule);
        return pass;
    }
    return false;
}

0 个答案:

没有答案