从C++调用C#
问题描述:
我一直在寻找一种方法来调用从C++ DLL项目中编写的C#EXE项目(VS 2008)中的函数。如果可能的话,我可以将C#代码作为C++项目本身的一部分。我所能找到的所有东西都是从C++调用C#DLL。从C++调用C#
最终我想从VB6调用C#代码,但我这样问这个问题,因为我不相信后面的方式是可能的,没有中间步骤。
感谢,
伊恩
答
最后,我想打电话从VB6 C#代码,但我问这样的问题,因为我不相信以后的路可能没有一个中间步骤。
您可以将C#类注册为COM可见,然后直接从C++或VB6调用它们。
有关详细信息,请参见MSDN上Example COM Class,以及Interoperability。
答
您可以使用/ 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
我以前做过这个。这是可怕的,但可行。 – mydogisbox 2012-08-07 17:57:12
@mydogisbox对于从VB6进行调用,这是迄今为止最简单的选项......对于使用C++,C++/CLI更容易 - 但如果唯一的目的是在VB中使用,这并不是真的可怕 – 2012-08-07 18:14:51
谢谢,但我宁愿做的事情就是包装C#代码,以便稍后通过VB调用它。它不一定是C++,我只想要一切都在DLL中。有任何想法吗?再次感谢。 – 2012-08-07 18:18:34