newlinn
36835
|
2009/2/27 9:22:19 |
卸载用这个 "DllUnregisterServer" |
forjoylee
36747
|
2009/2/11 15:11:26 |
调用regsvr32.exe就好了。 |
dwd_china
35868
|
2008/10/23 9:41:29 |
试试这个 function RegisterServer(const aDllFileName: string; aRegister: Boolean): Boolean; type TRegProc = function: HResult; stdcall; const cRegFuncNameArr: array[Boolean] of PChar = ('DllRegisterServer', 'DllUnregisterServer'); var vLibHandle: THandle; vRegProc: TRegProc; begin Result := False; vLibHandle := LoadLibrary(PChar(aDllFileName)); if vLibHandle = 0 then Exit; @vRegProc := GetProcAddress(vLibHandle, cRegFuncNameArr[aRegister]); if @vRegProc <> nil then Result := vRegProc = S_OK; FreeLibrary(vLibHandle); end; |
zhan_guotai
20602
|
2006/1/3 17:51:10 |
把 OLERegister 改成如下方式 Delphi5 测试通过!注册没有问题! 卸载好象有问题,哪位知道,顺便告一声!
function OLERegister(sOleFileName: String; OleAction: Byte):Boolean; const RegisterOle = 1; //注册 UnRegisterOle = 0; //卸载 var hLibraryHandle: THandle; //由LoadLibray返回的DLL或OCX句柄 pReg : procedure; begin Result := False; //打开文件,返回DLL或OCX句柄 hLibraryhandle := LoadLibrary(PChar(SOleFileName)); if (hLibraryHandle > 0) then //DLLakg OCX句柄正确 try //返回注册或卸载函数指针 if (OleAction = RegisterOle) then //返回注册函数指针 pReg :=GetProcAddress(hLibraryHandle,PChar('DllRegisterServer'))//GetProcAddress(hLibraryhandle,PChar('DLLRegisterServer')) else //返回卸载函数指针 pReg:= GetProcAddress(hLibraryhandle,PChar('DLLUnRegisterServer')); if (@pReg <> nil) then //判断注册或卸载函数是否存在 begin pReg; Result := True; end; finally FreeLibrary(hLibraryHandle); //关闭已打开的文件 end; end; |
seadog_wang
20008
|
2005/12/14 15:56:56 |
DemoOcx := CreateOleObject('Demo.Demo') DemoOcx := CreateOleObject('Demo.Demo') 是作什么用的 |
sstreet
19833
|
2005/12/9 23:58:05 |
好像不行,有没有可行的一种方法 |
hanxufeng
18356
|
2005/10/12 20:03:05 |
我用了,好象不行。 |
kingtao007
8184
|
2004/9/4 12:36:34 |
我路径和文件都是正确的,但却总提示不能注册,可能是有问题。 DemoOcx := CreateOleObject('Demo.Demo') 是作什么用的 |
vagrant
7510
|
2004/8/3 13:24:27 |
不好使,感覺有問題。。。 |
tim001
7502
|
2004/8/3 12:24:28 |
呵呵,昨天刚好看见VFP的,今天又收到DELPHI的,真好! |