C#如何调用OCX文件

C#如何调用OCX文件,第1张

1.将IDCard.ocx文件放在C盘根目录下,打开visual studio 2005命令提示 工具窗口 如图所示:

输入aximp c:\IDCard.oxc 会生两个dll文件----IDCardLib.dll、AxIDCardLib.dll。

2.在程序在添加引用 IDCardLib.dll、AxIDCardLib.dll。

private void Form1_Load(object sender, EventArgs e)

  {

AxIDCardLib.AxIDCard idcard = new AxIDCardLib.AxIDCard()

            ((System.ComponentModel.ISupportInitialize)(idcard)).BeginInit()

            this.Controls.Add(idcard)

            ((System.ComponentModel.ISupportInitialize)(idcard)).EndInit()

//下面便可调用IDCard里面的方法了。

}

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')

引用与部件是二个完全不同的概念,引用只能已经添加引用,但引用没有具体的界面,部件是具有界面的。

一般OCX应该是部件,如果在VB中没有这个部件,估计是你的系统中没有注册,因此首先需要注册。

方法是:将你需要注册的OCX文件拷贝到系统的WINDOWS/SYSTEM32/的目录中,在这个目录中有一个Regsvr32.exe,双击进入,在DOS界面输入你的OCX的文件名+扩展名,回车,确定,OK了,注册成功。

在VB的部件列表中就可以找到了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11101682.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存