Есть ли способ использовать VB Dll в C ++ (желательно кросс-платформенный) - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь взаимодействовать с частью оборудования, используя мой собственный код. Поставщик предлагает на своем сайте dll с некоторым примером кода на C #, DLL, похоже, скомпилирована из Visual Basic. Мне интересно, как использовать эту DLL в C ++. Является ли C ++ / CLI единственным способом сделать это? Или есть какой-то другой способ, который позволяет мне поддерживать мой кросс-платформенный код совместимым?

1 Ответ

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

простой пример: предположим, у нас есть управляемый класс Hello в сборке .NET (hello.dll).

    //This is c# but it could be also vb. Compilator of c# and VB.net  translate it to same thing .Net assembly dll. Which is internaly exactly the same  as c# dll.
    class Hello
    {
        public void HelloWorld()
        {
            Console.Writeline("Hello World!");
        }
    }

Теперь нам нужно определить собственный прокси-класс для Hello:

class Hello
{
public:
    Hello() : wrapper_("hello.dll", "namespace name") {}
    void HelloWorld()
    {
        wrapper_("Hello");
    }
private:
    nativeAdapter::NativeProxy wrapper_;
};
}

В нашей основной функции мы можем использовать прокси, как если бы это был управляемый класс:

int main(int, char **)
{
    Namespace::Hello hello;
    hello.Hello();
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...