我将如何使用的PInvoke导入函数模板?(How would I import a functio

2019-10-20 03:36发布

在我的C#代码,我需要从C ++ DLL,我wrote.The功能是通用的调用一个函数。 所以,我应该只是导入它是这样的:

[DllImport("myDll.dll")]
private static extern TypeName functionName<TypeName>( int arg1, int arg2 );

这是正确的语法? 谢谢。

Answer 1:

这可不行,没有主流的C ++编译器,使模板导出。 此外,模板是由C ++编译器通过类型擦除,类似的方式Java泛型实例化的作品。 换句话说,在混凝土可调用函数必须被嵌入在由C ++编译器的DLL。 他们不再是通用的。

作为替代方案,可以编写在C ++ / CLI语言一个引用类。 这会产生一个真正的.NET泛型类,由支持泛型任何.NET语言使用。



文章来源: How would I import a function template using PInvoke?