ここでは、C#projectのC++関数を呼び出すラッパーを記述しています。ここではDllimportメソッドを使用していません。私はC + +/CLRのアプローチを探しています。 C++/CLRアプローチを使用して、C#プロジェクトにDllを直接追加できます。パラメータとしてstd :: listを持つC++関数を呼び出す
私のC++/CLRには以下のような機能があります。
int StartScan(std::list<SomeObject*> *DeviceList);
私はC#からこの関数を呼び出したいです。 C#から呼び出す同等のプロパティは何ですか? 私はP/Invoke Approachを使用した場合、std :: listの同等のプロパティであるLinkedListを試しました。
'のstd :: list'はC++で実装定義です。コンパイラとコンパイラのバージョンによって実装方法が異なります。 C#がPInvokeと一致する方法はありません。異なるC++コンパイラとバージョンでも、お互いの 'std :: list'を一致させることはできません。 – PaulMcKenzie
[P/Invokeを使用してC#でリストを返す方法]の複製がありますか?(http://stackoverflow.com/questions/31529316/how-to-return-a-list-in-c-sharp-using-p -invoke) –
関連項目:http://stackoverflow.com/questions/1579559/marshalling-net-generic-types –