外部呼び出し用に C++ 関数で定義しました。
template<typename T>
void __declspec(dllexport) SwapMe(T *fisrt, T *second)
{
std::cout << typeid(T).name() << std::endl;
T temp = *first;
*first = *second;
*second = temp;
}
C# プログラムで使用したい。私はこの方法で試しました:
unsafe class Program
{
[DllImport("lib1.dll", EntryPoint = "SwapMe")]
static extern void SwapMe<T>(T first, T second);
...
}
しかし、私はそのようなエラーが発生しています:
ジェネリック メソッドまたはジェネリック クラスのメソッドは、内部呼び出し、PInvoke、または COM Import クラスで定義されています。
C# の Generic はマネージ型であり、C++ のアンマネージ テンプレートを使用すると、アーキテクチャによってかなり異なるものになるようです。
C# プログラムでテンプレート メソッドを使用するにはどうすればよいですか?