一个注册了虚拟摄像机的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;
}