delphi 怎么动态调用ocx中的方法

发布网友 发布时间:2022-04-22 09:18

我来回答

1个回答

热心网友 时间:2023-11-06 14:53

OCX 其实质上可以看作是动态库,即对 dll 文件进行加载调用。


通常来说,你需要先在操作系统中注册 ocx,比如:


regsvr32.exe/s yourocx.ocx


然后,在源代码里可以先引入这个库( Component--->Import Activex Control),再调用即可。


如果是动态注册,可以参考以下代码:


//注册ocx
function RegisterOCX(FileName: string): Boolean;
var OCXHand: THandle;
    RegFunc: TDLLFunction;
begin
    OCXHand := LoadLibrary(PChar(FileName));
    RegFunc := GetProcAddress(OCXHand, 'DllRegisterServer');
    if @RegFunc <> nil then
        Result := RegFunc = S_OK
    else
        Result := False;
    FreeLibrary(OCXHand);
end;
//卸载OCX
function UnRegisterOCX(FileName: string): Boolean;
var OCXHand: THandle;
    RegFunc: TDLLFunction;
begin
    OCXHand := LoadLibrary(PChar(FileName));
    RegFunc := GetProcAddress(OCXHand, 'DllUnregisterServer');
    if @RegFunc <> nil then
        Result := RegFunc = S_OK
    else
        Result := False;
    FreeLibrary(OCXHand);
end;
//调用:
FWord := CreateOleObject('Word.Application');

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com