使用TCOMAdminCatalog(ICOMAdminCatalog)对象制作COM+的安装程序,在win98上执行不了,报错:“类没有注册”。应该是TCOMAdminCatalog这个类在win98中没有,不知需要那些DLL?
解决方案 »
- 关于DBGridEhFindDlgs的使用问题?高分求解?在线等急?
- 凡是用过ACCESS的兄弟们,进来看看吧,在线两个月了,没有人解决
- 一个偶然的发现
- 怎样得到LISTVIEW中某个SUBITEM?
- 如何判断缓存表edit,insert 壮态。
- 在QuickReport中打印的问题!
- 急:求助:在dephi中如何将该应用程序与本机硬件进行绑定
- 如何操作Excel?
- 鄙视“做贼喊贼”的人
- 关于TListView的问题?
- 能否告知一下从pardox7.0导入到mssql的方法?
- 为什么我在程序中用 'ParamByname'时总是有错:[Error] Unluru.pas(54): Undeclared identifier: 'ParamByname'?
function TForm1.InstallApp: Boolean;
var
CataAdmin: TCOMAdminCatalog;
begin
Result := False;
CataAdmin := TCOMAdminCatalog.Create(nil);
if not FileExists(FClientSrcPath + '\COMPlus\COMClient.MSI') then
begin
ShowMessage('the source File is not exist.');
Exit;
end;
CataAdmin.InstallApplication(FClientSrcPath + '\COMPlus\COMClient.MSI', FCOMClientDLLPath, 0, '', '', '');
Result := True;
end;
你总要在客户端上注册中间层的组件啊.在98客户端上注册的方法有:
1.从中间层服务器的组件服务中导出客户端代理(Application Proxy),将这个MSI文件安装到98客户端上.
2.自己写程序在98客户端上注册组件.
我说的是第二种情况.
在win98上没有TCOMAdminCatalog这个类,只能采取其它方法了.查了一下过去的帖子,看到有人用Regsvr32来注册,我写程序试了一下,是可行的.但有一个问题:用WinExec调用Regsvr32这个外部程序来注册一个DLL的时候总是会弹出一个注册成功的消息框....100多个组件,100多个消息框...嘿嘿
请问,怎么不让这个消息框弹出来?
WinExec应该有参数的试试Winexec('路径\regsvr32.exe 文件名',sw_hide);
不知98下直接运行.msi会怎么样?我怎么觉得用regsvr32注册中间层客户端不顺眼啊:)
1.需要安装MSI安装程序的驱动.
2.要手工复制Midas.Dll并注册之.因为我用了Midas.
3.直接运行MSI不能控制DLL的安装路径,只能转到Program Files/COMPlus Applcation/....
4.综合以上,客户端的安装过于繁琐,让不熟悉电脑的人员去安装容易出错.运行Regsvr32 注册组件是加上参数/s就不会弹出消息框了.
现在有发现一个问题:在运行Regsvr32 /u 来反注册组件时,进到注册表一看,还在那儿呢...反注册以后组件竟然能照常使用....呵呵,怎么回事啊?
Regsvr32 /s /u,还有/s得在前面.