有没有一种方法可以在c ++中使用VB Dll(最好是跨平台)

问题描述 投票:-1回答:1

我正在尝试使用自己的代码与硬件交互。供应商在他的网站上提供了一个DLL,其中包含一些C#示例代码,该DLL似乎是从Visual Basic编译的。我想知道如何在C ++中使用此DLL。 C ++ / CLI是做到这一点的唯一方法吗?还是有其他方法可以使我的代码跨平台兼容?

c# c++ visual-studio dll
1个回答
0
投票

简单的例子:假设我们在.NET程序集(hello.dll)中有一个托管类Hello。

    //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;
}
© www.soinside.com 2019 - 2024. All rights reserved.