C#项目与C+之间的交互+;同一解决方案中的项目

C#项目与C+之间的交互+;同一解决方案中的项目,c#,.net,visual-studio-2010,visual-c++,c++-cli,C#,.net,Visual Studio 2010,Visual C++,C++ Cli,我有一个用C++/cli编写的windows窗体应用程序。我想用一些新的表单扩展这个应用程序,我想在一个单独的项目中用C#创建它们 是否可以简单地将C++项目添加到具有C++项目的解决方案中,并且两个项目将交互?通过交互,我的意思是说,点击C语言项目中的一个表单的按钮将能够调用C++项目中的方法。也许在另一种方式中,C++项目中的对象可以引用C++项目中的对象吗?如果是这样的话,您知道让我开始学习的示例代码吗 谢谢。是的。C++/CLI应用程序将能够通过以下两种方式之一与C#应用程序进行接口:

我有一个用C++/cli编写的windows窗体应用程序。我想用一些新的表单扩展这个应用程序,我想在一个单独的项目中用C#创建它们

是否可以简单地将C++项目添加到具有C++项目的解决方案中,并且两个项目将交互?通过交互,我的意思是说,点击C语言项目中的一个表单的按钮将能够调用C++项目中的方法。也许在另一种方式中,C++项目中的对象可以引用C++项目中的对象吗?如果是这样的话,您知道让我开始学习的示例代码吗


谢谢。

是的。C++/CLI应用程序将能够通过以下两种方式之一与C#应用程序进行接口:

如果您使用的是CLI扩展(从您的帖子中听起来很像),则可以使用新的对象引用编写代码:

托管对象:
System::String ^myString
(在C++中)与C中的
String myString
相同# 托管引用:
System::String%myString
相当于
ref String myString

如果您想使用C++本地类型,那么您必须使用p/UnjKE,但这是完全不同的类别。对于你想做的事情,只要把C++项目添加到C++项目中,就可以在C++中使用托管类型编写一个公开可见的类,然后编译。在C++类中选择的任何命名空间中,您的项目应该可以看到您的C类。


<>编辑:哦,如果需要通过C++分配托管对象,则需要使用<代码> GCNEX//COD>而不是<代码>新< /COL>

< P>这可以通过编译C++项目的DLL来完成,然后使用C应用程序加载DLL,然后调用它的导出函数。此方法允许C++代码为非托管代码。 就查找已设置的示例而言,我只能找到Visual Studio 2008项目: