我可以使用C++;在我的C#项目中? 问题是——我想在C++中编写一个模板类,把它放在DLL中,然后从我的C项目中调用它。可能吗?你能提供一些关于如何做的参考资料或文章吗? 编辑 我希望DLL是用非托管C++编写的

我可以使用C++;在我的C#项目中? 问题是——我想在C++中编写一个模板类,把它放在DLL中,然后从我的C项目中调用它。可能吗?你能提供一些关于如何做的参考资料或文章吗? 编辑 我希望DLL是用非托管C++编写的,c#,c++,dll,interop,C#,C++,Dll,Interop,我认为这个问题可能会帮助您: 无法导出模板类。它不存在,直到有人实例化它。您应该显式地实例化它,然后像普通类一样导出它 您可以像创建任何其他DLL一样创建它—DLL背后的主要思想是,它可以用任何编程语言创建,并且可以与其他语言一起使用。请记住C++是非托管的,因此必须谨慎对待。例如(MSDN论坛) 一般来说,使用DLLIMPART De饰器从C++中创建的DLL文件导入函数。MSDN中的示例: using System.Runtime.InteropServices; // DllImport

我认为这个问题可能会帮助您:


无法导出模板类。它不存在,直到有人实例化它。您应该显式地实例化它,然后像普通类一样导出它

您可以像创建任何其他DLL一样创建它—DLL背后的主要思想是,它可以用任何编程语言创建,并且可以与其他语言一起使用。请记住C++是非托管的,因此必须谨慎对待。例如(MSDN论坛)

一般来说,使用DLLIMPART De饰器从C++中创建的DLL文件导入函数。MSDN中的示例:

using System.Runtime.InteropServices; // DllImport
public class Win32 {
  [DllImport("User32.Dll")]
  public static extern void SetWindowText(int h, String s);
}

使用C++ +CLI,可以将C++类暴露为.NET类,它们使用兼容的特性。但是,您不能公开模板定义,但可以使用专门化该模板的具体类


构建C++/CLI类时,可以像引用任何其他.NET程序集一样引用它。

据我回忆,这里有一点问题。 有可能使用C++来使用C++ DLL(托管和非托管) 有可能使用非托管C++使用C*ydll(需要通过COM和接口来完成)。
我会看看是否能找到链接的更详细信息,这说明了一切,但您应该使用DllImport添加一些代码