如何用c++逻辑在c#或VB中创建一个接口

本文关键字:创建 接口 一个 VB c++ 何用 | 更新日期: 2023-09-27 18:13:38

我的问题是用c++代码创建接口的最佳方法是什么

基本上到目前为止,我有一个控制台项目在c++中,工作如我所期望的,但我现在想为它做一个GUI。我的选择似乎是:

  1. 制作c++项目的dll,然后制作一个c#表单,使用dll来执行逻辑。

  2. 除VB外与1相同

  3. 使用QT或类似的东西,在同一个项目中制作接口

我一直在尝试选项1很长一段时间。通过在Visual Studio 2005中创建一个库项目,我成功地创建了这个库。然后我把它放在我的c#项目中,但我遇到了一个问题,即无法实例化我的类,但c#项目无法看到我的方法。

我能找到的唯一解决办法是使用ref关键字。这样做的问题是无法混合托管和非托管代码,并且在一个较大的类上尝试这种方法会产生大约250个错误。

选项2我有同样的问题。

如果有必要,我会从选项3开始,我只是想知道我是否遗漏了什么基本的或任何一般性的建议?

为阅读干杯

如何用c++逻辑在c#或VB中创建一个接口

你完全可以从c#中使用c++代码,但如果它是非托管的c++代码,你必须钻研pinvoke领域来调用你的代码。

如果您试图利用。net中现有的c++库,那么最简单的方法之一就是使用c++/CLI作为非托管库的包装器。c++/CLI编译成。net字节码,但具有许多自动的非托管互操作。在使用c++/CLI非托管互操作时,经常出现的一个短语是"它只是工作"。这是个准确的短语。

一旦你为你的非托管代码有了一个c++/CLI包装器,c#应该能够看到你的c++/CLI库暴露的所有东西。