问题是——我想在C++中编写一个模板类,将其放入DLL中,并从我的C#项目中调用它。这种做法是否可行?你能否提供任何关于如何实现它的参考或文章吗?
编辑
我希望DLL是用非托管C++编写的。
模板类无法导出。除非有人实例化它,否则它不存在。您应该显式地实例化它,然后像通常的类一样导出它。
你可以像创建其他DLL一样创建它 - DLL的主要思想是它可以用任何编程语言创建,并且可以与其他语言一起使用。只需记住C++是非托管的,因此必须小心处理。例如在这里(MSDN论坛)查找。
通常,使用DllImport修饰符从在C++中创建的DLL文件中导入函数。以下是来自MSDN的示例:
using System.Runtime.InteropServices; // DllImport
public class Win32 {
[DllImport("User32.Dll")]
public static extern void SetWindowText(int h, String s);
}