VBA объектно-ориентированное программирование - PullRequest
1 голос
/ 04 октября 2011

Этот вопрос является расширением предыдущего вопроса: Вернуть объект в 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 ]

2 голосов
/ 04 октября 2011

Этот код никогда не будет работать как есть. Если вы хотите создать класс в C ++ под Windows и использовать его на любом другом языке программирования, отличном от C ++ (например, VB), «нормальный» подход - создать COM-класс или * 1003. * ActiveX control , если вам нужно рисовать графику.

Вы также можете найти этот ответ в ТАК полезном.

0 голосов
/ 04 октября 2011

я снова здесь: 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...