你的DLL应该有注册入口函数吧,在InstallShield的文件组中设置自注册属性就行了。

解决方案 »

  1.   

    whq是对的,用Delphi向导生成的MTS对象和Automation对象都是自注册的,InstallShield中将它们放到一起,设置自注册属性即可。
      

  2.   


    使用regserver会出现一个DOS窗口,显得很不雅,还是最好使用下面的函数(经过测试,没有问题),思想是调用Com DLL中的DllRegisterServer函数来完成自注册。
    function RegisterDll(strDllPath : string) : boolean;
    var
      hLib : THandle;
      lpFunc : TDllProcedure;
      strName : string;
    begin
      strName := strDllPath;  hLib := LoadLibraryEx(pChar(strName), 0,LOAD_WITH_ALTERED_SEARCH_PATH);
      if hLib = 0 then
      begin
        result := false;
        exit;
      end;  try
        lpFunc := GetProcAddress( hLib, 'DllRegisterServer' );
        if not Assigned(lpFunc) then
        begin
          result := false;
          exit;
        end;    lpFunc;
        result := true;
      finally
        FreeLibrary( hLib );
      end;
    end;