在DOS提示符下 直接敲 regsvr32 *.ocx
解决方案 »
- 关于erp的菜单
- 在线等 解决放上结贴 怎么能让一个程序开始运行时不显示主窗口
- 关于文本文件的读写!找了好久,没有合适的方法。
- ★★★★★大事件★★★★★--【修罗】
- 小小即将生日之际,中国软件技术大会开幕之时,祝小小与百合共创美好未来!
- Delphi7的Midas是不是有问题啊!大家帮我看看...即,如果解决不了,我就必须把工程全部移植到Delphi5中!
- 一个初级程序员的编程历史
- cs地图怎么做的?有没有cs的地图编辑器?
- access数据库,使用sql语句时有没有将字符转换成数值的函数
- 请教关于delphi中dbnavigator控件的用法!
- 高分提问:1:StringGrid数据打印;2:从表将数据导入StringGrid时,real的数据都变为整形的字符串,如何可以保留小数位?
- 网站峻工-开张开吉--散分了!!!!
怎样用api注册呢???
怎样用api注册呢???
怎样用api注册呢???
怎样用api注册呢???
怎样用api注册呢???
怎样用api注册呢???
怎样用api注册呢???
怎样用api注册呢???
function MyUtil_RegisterOCX(Filename: pchar) : integer; stdcall;
var
hOCX: Integer;
pReg: procedure;
begin
hOCX := LoadLibrary(pchar(Filename));
if (hOCX <> 0) Then
begin
pReg := GetProcAddress(hOCX, 'DllRegisterServer');
pReg; { Anropa funktionen }
FreeLibrary(hOCX);
result := 0;
end
else
result := -1;
end;
在程序中实现ocx的注册. uses OLEctl {, ....};interface{...}var
OCXHandle: THandle;
RegFunc: TDllRegisterServer;
begin
OCXHandle:= LoadLibrary('c:\XXX.ocx');
RegFunc := GetProcAddress(OCXHandle, 'DllRegisterServer');
if RegFunc <> 0 then ShowMessage('Error!');
FreeLibrary(OCXHand);
end;
const
RegisterOle = true;//注册
UnRegisterOle = false;//卸载
type
TOleRegisterFunction = function : HResult;//注册或卸载函数的原型
var
hLibraryHandle : THandle;//由LoadLibrary返回的DLL或OCX句柄
hFunctionAddress: TFarProc;//DLL或OCX中的函数句柄,由GetProcAddress返回
RegFunction : TOleRegisterFunction;//注册或卸载函数指针
begin
Result := FALSE;
//打开OLE/DCOM文件,返回的DLL或OCX句柄
hLibraryHandle := LoadLibrary(PCHAR(strOleFileName));
if (hLibraryHandle > 0) then//DLL或OCX句柄正确
try
//返回注册或卸载函数的指针
if (OleAction = RegisterOle) then//返回注册函数的指针
hFunctionAddress := GetProcAddress(hLibraryHandle, pchar('DllRegisterServer'))
else//返回卸载函数的指针
hFunctionAddress := GetProcAddress(hLibraryHandle, pchar('DllUnregisterServer'));
if (hFunctionAddress <> NIL) then//注册或卸载函数存在
begin
RegFunction := TOleRegisterFunction(hFunctionAddress);//获取操作函数的指针
if RegFunction >= 0 then //执行注册或卸载操作,返回值>=0表示执行成功
result := true;
end;
finally
FreeLibrary(hLibraryHandle);//关闭已打开的OLE/DCOM文件
end;
end;