VBA面向对象编程

时间:2011-10-04 16:50:14

标签: c++ excel vba dll

此问题是上一个问题的扩展:Return an object in VBA

现在,我想知道如何在VBA中声明和初始化对象。好像我会这样做:

Declare Function ConnectMe Lib "C:\Windows\System32\cm.dll" (ByVal Arg1 As String) As ConnectMe
Declare Function login Lib "C:\Windows\System32\cm.dll" (ByVal Arg1 As String, ByVal Arg2 As String) As Boolean

然后,在这一行下面,我可以使用这段代码:

dim cm as new ConnectMe

cm.ConnectMe("216.239.51.99")

cm.login("username","password")

但是,当我这样做时,它会给我一个“用户定义的类型未定义”错误。如何正确声明此C ++类,以便我可以在VBA中创建和使用实例?

感谢。

2 个答案:

答案 0 :(得分:2)

此代码永远不会按原样运行。如果你想在Windows下用C ++创建一个类并在任何其他不是C ++的编程语言中使用它(例如VB),那么“正常”的方法是创建COM classActiveX control如果你需要绘制图形。

您也可以在SO中找到this answer

答案 1 :(得分:0)

我又来了:D

要将此代码用于您的函数,请使用:

Dim cm as Object

set cm = ConnectMe("parameter")

if cm.login("username","password") then 
     msgbox "Connect!",vbinformation
else
     msgbox "not connect!",vbinformation
end if