一个DLL能在regsvr32中注册成功,
我的代码是
/*HMODULE hMod=LoadLibrary(strFileName);
if(hMod==NULL)
{
return "运行check.dll失败";
}
FARPROC DllRegister=(FARPROC)GetProcAddress(hMod,"DllRegisterServer");
if(DllRegister==NULL)
{
return "注册函数失败";
}
    DllRegister();
FreeLibrary(hMod);
return "check.dll注册成功";*/那为什么我注册不成功呢、

解决方案 »

  1.   

    看看导出表中是否有DllRegisterServer
      

  2.   

    BOOL ****::RegisterFilter(char *inFilterAx)
    {
    typedef(WINAPI * REGISTER_FUNC)(void);
    REGISTER_FUNC MyFunc=NULL;
    HMODULE hModule=::LoadLibrary(inFilterAx);
    if(hModule)
    {
    MyFunc=(REGISTER_FUNC)GetProcAddress(hModule,"DllRegisterServer");
    BOOL pass=(MyFunc!=NULL);
    if(pass)
    {
    MyFunc();
    }
    ::FreeLibrary(hModule);
    return pass;
    }
    return false;
    }
    在需要注册的地方调用
    char dll2[200];
    sprintf(dll2,"divxdec.ax");
    RegisterFilter(dll2);
      

  3.   

    导出表当中,有这个DllRegisterServer函数,程序中取出的hMod是个空值