我想用VC编写一个像windows系统中regsvr32的,注册dll的小程序。如果这个东西相当庞大那么只要有注册与反注册就行了。但是小弟刚接触VC不知怎么个情况!望各位大哥指点一二。这个东西好编吗?

解决方案 »

  1.   

    用LoadLibrary加载DLL。注册时用GetProcAddress获取DllRegisterServer函数地址,然后调用这个函数;反注册用GetProcAddress获取DllUnregisterServer函数地址,然后调用这个函数。最后FreeLibrary。
      

  2.   

    DllRegisterServer , DllUnregisterServer 作为com 组件类型dll的缺省导出接口你加载dll后,调用DllRegisterServer  来regsvr 注册
    DllUnregisterServer  来regsvr /u 反注册
      

  3.   

    能不能给举个例子啊!比如注册netman.dll具体怎么变成。最好把情绪源码贴出来!
      

  4.   

    regsvr32的源代码(摘自mdsn)
    http://blog.csdn.net/dotnet90/archive/2008/01/29/2071497.aspx
      

  5.   

    DLL Registration / Unregistration using a Shell Extension
    http://www.codeproject.com/KB/shell/dllregshex.aspx
      

  6.   

    好像写一个脚本就可以注册啊,不记得了,com原理与应用有说到。
      

  7.   

    [code=BatchFile]
    regsvr32 /i my.dll // 注册
    regsvr32 /u my.dll // 注销
    [/code]//---------------------------------------------------------------------------
    // 注册com组件,reg为true注册,false注销
    //---------------------------------------------------------------------------
    bool __fastcall DllRegServer(const String &dllName, bool reg)
    {
    HINSTANCE module;
    int __stdcall (*fun)(void);
    module = LoadLibrary(dllName.c_str()); if (reg)
    fun = GetProcAddress(module, "DllRegisterServer");
    else
    fun = GetProcAddress(module, "DllUnregisterServer"); if (fun == NULL)
    {
    FreeLibrary(module);
    return false;
    }
    else
    {
    fun();
    FreeLibrary(module);
    return true;
        }
    }
      

  8.   

    我怎么看不懂啊!代码的什么地方指示了我要注册的dll了?
      

  9.   


    dllName里面就是要注册的dll
      

  10.   

    我弄了半天,原来在VC++ 6.0 所附带的工具中就有注册DLL的东西,直接点击就可以了!半天白忙活了! 
      

  11.   

    我弄了半天,原来在VC++ 6.0 所附带的工具中就有注册DLL的东西,直接点击就可以了!半天白忙活了!