用 regsvr32 mydll.dll,在注册表里执行了些什么操作啊,
怎么操作注册表达到同样的效果?3x!

解决方案 »

  1.   

    修改了大概4。5个地方,主要是建立了com id和路径的对应关系
      

  2.   

    regsvr32本身并不执行注册表操作,它只是调用的组件自身的DllRegisterServer,注册操作就是在这个函数里做的,下面是某个DLL注册时的注册表操作,DllRegisterServer就是解析这个结构并操作注册表的:HKCR
    {
    IEFlashSave.IEFlashSave.1 = s 'FlashSaver'
    {
    CLSID = s '{C8B54256-F065-4BDD-A4AD-C2D5E960BEED}'
    }
    IEFlashSave.IEFlashSave = s 'FlashSaver'
    {
    CLSID = s '{C8B54256-F065-4BDD-A4AD-C2D5E960BEED}'
    CurVer = s 'IEFlashSave.IEFlashSave.1'
    }
    NoRemove CLSID
    {
    ForceRemove {C8B54256-F065-4BDD-A4AD-C2D5E960BEED} = s 'FlashSaver'
    {
    ProgID = s 'IEFlashSave.IEFlashSave.1'
    VersionIndependentProgID = s 'IEFlashSave.IEFlashSave'
    ForceRemove 'Programmable'
    InprocServer32 = s '%MODULE%'
    {
    val ThreadingModel = s 'Apartment'
    }
    'TypeLib' = s '{FCA278B0-A8A7-4058-B817-3C6C524C972D}'
    }
    }
    }