Как вызвать конструктор C ++ из Visual Basic - PullRequest
3 голосов
/ 21 октября 2011

У меня проблемы с вызовом конструктора C ++ в моем коде Visual Basic.DLL была импортирована правильно, но эта строка, в частности, доставляет мне проблемы:

Dim myobj As New MyObject("param1", "param2", "param3")

И соответствующий конструктор C ++:

MyObject::MyObject(System::String ^ p1, System::String ^ p2, System::String ^ p3)

Есть предложения?

Ответы [ 3 ]

3 голосов
/ 21 октября 2011

Вы не можете.Это просто не поддерживается таким образом.

Самый простой способ сделать это - просто преобразовать конструктор в функцию (например, Initialize()).

1 голос
/ 21 октября 2011

Вы не можете - класс будет создан с помощью конструктора по умолчанию.Если вам нужна параметризованная конструкция, у вас есть две опции - либо добавьте параметризованный метод «initialize» к классу, либо добавьте фабричный класс с методом «экземпляр первого класса с этими параметрами».

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

Используйте абстрактные интерфейсы и создайте фабрику для генерации объектов. Также он сохранит абстракцию между вашим кодом и dll. Прочитайте эту статью http://www.codeproject.com/KB/cpp/howto_export_cpp_classes.aspx

...