此问题是上一个问题的扩展: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中创建和使用实例?
感谢。
答案 0 :(得分:2)
此代码永远不会按原样运行。如果你想在Windows下用C ++创建一个类并在任何其他不是C ++的编程语言中使用它(例如VB),那么“正常”的方法是创建COM class或ActiveX 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