2012-08-07 131 views
3

我一直在寻找一种方法来调用从C++ DLL项目中编写的C#EXE项目(VS 2008)中的函数。如果可能的话,我可以将C#代码作为C++项目本身的一部分。我所能找到的所有东西都是从C++调用C#DLL。从C++调用C#

最终我想从VB6调用C#代码,但我这样问这个问题,因为我不相信后面的方式是可能的,没有中间步骤。

感谢,

伊恩

回答

6

最后,我想打电话从VB6 C#代码,但我问这样的问题,因为我不相信以后的路可能没有一个中间步骤。

您可以将C#类注册为COM可见,然后直接从C++或VB6调用它们。

有关详细信息,请参见MSDN上Example COM Class,以及Interoperability

+0

我以前做过这个。这是可怕的,但可行。 – mydogisbox 2012-08-07 17:57:12

+0

@mydogisbox对于从VB6进行调用,这是迄今为止最简单的选项......对于使用C++,C++/CLI更容易 - 但如果唯一的目的是在VB中使用,这并不是真的可怕 – 2012-08-07 18:14:51

+0

谢谢,但我宁愿做的事情就是包装C#代码,以便稍后通过VB调用它。它不一定是C++,我只想要一切都在DLL中。有任何想法吗?再次感谢。 – 2012-08-07 18:18:34

1

您可以使用/ CLR选项编译您的C++项目,然后在其中调用C#。要做到这一点,你需要包含vcclr.h,然后为每个你需要调用的dll添加一个using语句。

#include <vcclr.h> 
#using <System.dll> 
+0

为避免必须使用/ clr重新编译整个项目,您还可以开发一个使用C++/CLI编写的程序集/ DLL,将非托管接口公开给您的C#代码 – 2012-08-07 17:50:13