怎样用vb编写ActiveX dll?

2025-04-22 10:55:44
推荐回答(1个)
回答1:

在调用标准dll与ActiveX dll有本质区别,调用外部标准dll需要用declare声明,而且要知道接口。
既然你在exe里会调用,那么Activex DLL其实就是exe里写一个Class类。不过bas模块里的全局代码是不能作用于Class类的。

因为不知道你的dll接口是什么内容,我就随便用个API代替你的dll接口声明给你个例子。
首先创建一个ActiveX Dll工程,写如下代码:

'声明外部DLL调用接口函数
Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long

'定义一个方法,里面调用外部DLL
Sub mySetPixel(ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long)
SetPixel hdc, x, y, crColor '调用外部DLL
End '调用完外部DLL后,关闭程序
End Sub
接下来把标准dll声明放在Class类的最上部即可,然后写个方法或者属性,并在里面放入调用外部dll的代码。这样其它exe程序就可以引用这个activex dll的 mySetPixel方法,实际上这个方法调用的就是外部dll。

使用起来就简单了,EXE在引用Activex dll后,再写入下面代码:
Dim x As New Class1 '调用activx dll
Private Sub Command1_Click()
Form1.ScaleMode = 3
x.mySetPixel Form1.hdc, 100, 100, RGB(255, 0, 0) '调用这个函数,执行后程序就会关闭
End Sub

嗯,就这么简单便可以搞定!