【发布时间】:2013-06-28 11:13:32
【问题描述】:
如果有人问过这个问题,请接受我的道歉。我似乎找不到太多关于这个主题的东西。 Primitive types pass template parameter between c++ and CLI 是一个类似的问题,我觉得它的信息量不大。
我有一个本机 C++ DLL,它公开了一个模板类(当然是它的实例化),我想在 C# 中模拟它。我对 C# 比较陌生,但我知道最接近的是泛型。
我的问题是如何将 C++ 模板包装在 C++/CLI 模板/泛型中,以便能够在 C# 中使用它。
有可能吗?我认为这是不可能的,因为 CLI 包装器不知道如何将非托管的未知类型
T编组为托管类型以供 C# 使用。如果可能,你会怎么做?如果不是,您可以在类似情况下使用哪些一般策略?
谢谢。
【问题讨论】:
-
C++ 模板在编译时被实例化。从托管代码中使用它们的唯一可能方法是让它运行 C++ 编译器。这当然不实用。在 C++/CLI 中使用 generic 关键字来声明在运行时实例化的泛型类型。
标签: c# c++ .net templates c++-cli