C ++オブジェクト/dllには、 COM相互運用機能またはによってアクセスできますC++/CLI
。を使用C++/CLI
して、C#で直接使用できる独自のラッパーオブジェクト/クラスを作成できます。C ++とC#の両方を知っていると、構文はある程度馴染みのあるものになります(そして、オンラインには優れたリソースがあります)。
C ++ / CLIは、CLIラッパーを作成する必要があるため、もう少し作業が必要になる場合がありますが、C#コードで物事をより明確に保つことができます(私の意見)。
この次の記事で始めることができます:クイックC ++/CLI-10分未満でC++/CLIを学ぶ
より詳細な記事:http://msdn.microsoft.com/en-us/magazine/cc163852.aspx
上から借用した、物事をよりエキサイティングにするためのコード例(構文を大文字で表示)。Student
はC++クラスでStudentWrapper
あり、C#コードで使用されるCLIラッパーです。
public ref class StudentWrapper
{
private:
Student *_stu;
public:
StudentWrapper(String ^fullname, double gpa)
{
_stu = new Student((char *)
System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(
fullname).ToPointer(),
gpa);
}
~StudentWrapper()
{
delete _stu;
_stu = 0;
}
property String ^Name
{
String ^get()
{
return gcnew String(_stu->getName());
}
}
property double Gpa
{
double get()
{
return _stu->getGpa();
}
}
};