如何注册和卸载com里的tlb文件 |
答題得分者是:Vicen
|
akali
一般會員 ![]() ![]() 發表:4 回覆:2 積分:1 註冊:2004-08-02 發送簡訊給我 |
因为客户端是98下的,使用com时需要注册和卸载tlb文件,但是,不知道怎么进行操作,查了win sdk,有RegisterTypeLib这个方法,但是看原形:
HRESULT RegisterTypeLib(ptlib, szFullPath, szHelpDir)
ITypeLib FAR* ptlib
OLECHAR FAR* szFullPath
OLECHAR FAR* szHelpDir
却不知道怎么用,ITypeLib FAR* ptlib这种怎么在delphi声明??
希望哪位能指导一下,要是有delphi里注册/卸载tlb文件的例子就更好了,谢谢 ~~learning delphi~~ 發表人 - akali 於 2005/03/28 10:16:58
------
~~learning delphi~~ |
Vicen
高階會員 ![]() ![]() ![]() ![]() 發表:13 回覆:145 積分:151 註冊:2005-03-14 發送簡訊給我 |
Uses classes,Forms,Sysutils,Dialogs, ActiveX, ComObj; function RegisterTypeLibs(LibPath : WideString):Boolean; Var tlib: ITypeLib; begin try Result := True; OleCheck(LoadTypeLib(PWideChar(LibPath), tlib)); OleCheck(RegisterTypeLib(tlib, PWideChar(LibPath),nil)); except Result := False; end; end;發表人 - Vicen 於 2005/03/28 13:27:11 |
akali
一般會員 ![]() ![]() 發表:4 回覆:2 積分:1 註冊:2004-08-02 發送簡訊給我 |
|
akali
一般會員 ![]() ![]() 發表:4 回覆:2 積分:1 註冊:2004-08-02 發送簡訊給我 |
不好意思,又有问题了,代码那样打是可以编译过,但是好象注册不起来啊,我是这样打的
//--------------------------------------------------------------
function TtfAutoUpdate.pRegLib(fileName : String):boolean;
var
sFileName : String;
ptlib: ITypeLib;
begin
sFileName := fileName;
try
result := true;
OleCheck(LoadTypeLib(PWideChar(sFileName), ptlib));
OleCheck(RegisterTypeLib(ptlib, PWideChar(sFileName),nil));
pWriteLog('注册' fileName '成功');
Except
on e:Exception do
begin
result := false;
pWriteLog('注册' fileName '失败,错误:' e.Message);
end;
end;
end;
//--------------------------------------------------------------
function TtfAutoUpdate.pUnRegLib(fileName : String):boolean;
var
sFileName : String;
ptlib : ITypeLib;
ptla : PTLibAttr;
begin
sFileName := fileName;
try
result := true;
OleCheck(LoadTypeLib(PWideChar(sFileName), ptlib));
OleCheck(ptlib.GetLibAttr(ptla));
OleCheck(UnRegisterTypeLib(ptla.guid,ptla.wMajorVerNum,ptla.wMinorVerNum,ptla.lcid,ptla.syskind));
ptlib.ReleaseTLibAttr(ptla);
pWriteLog('卸载' fileName '成功');
Except
on e:Exception do
begin
result := false;
pWriteLog('卸载' fileName '失败,错误:' e.Message);
end;
end;
end; 运行时出现这样的信息:
卸载C:\SEATLOADER\file\TrAwoke.tlb失败,错误:加载类型库或动态链接库时出现错误。
注册C:\SEATLOADER\file\TrAwoke.tlb失败,错误:加载类型库或动态链接库时出现错误。
就是这些tlb并没有注册/卸载起来,这是什么原因造成的?谢谢 ~~learning delphi~~
------
~~learning delphi~~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |