**unmanaged class**
これはこれはこれは、管理クラス宣言呼び出すC言語は、C#
public __gc class Mclass
{
//private:
public:
cppclass * obj;
public:
Mclass();
~Mclass();
string native();
で管理されていないクラス定義
cppclass::cppclass()
{
x="hello";
};
cppclass::~cppclass()
{
};
string cppclass::native()
{
return x;
};
**MANAGED CLASS**
で管理されていないクラス宣言
#ifdef EXPORT_CLASS
#define DLL_EXPORT __declspec(dllexport)
#else
#define DLL_EXPORT __declspec(dllimport)
#endif
public class DLL_EXPORT cppclass
{
private:
string x;
public:
cppclass();
~cppclass();
string native();
};
**UNMANAGED CLASS DEFINITION**
あるからdllを++ };
**MANAGED CLASS DEFINITION**
//これで
#include"managed.h"
Mclass::Mclass()
{
obj=new cppclass();
};
Mclass::~Mclass()
{
delete obj;
};
string Mclass::native()
{
return obj->native();
};
すべてのこれらの4つのファイルがAC#プロジェクトでそれを使用する方法dll.Nowに作られたプロジェクトである管理クラス定義
スニペットは非常に不完全です。 Mclassは 'public ref class'と宣言されなければならないので、アセンブリの外側から見ることができます。クライアントコードがDispose()を呼び出さないときにメモリをリークしないように、ファイナライザを実装する必要があります。そして、あなたのnative()メソッドは* obj *が削除されていないかどうかをチェックするべきです。 –
@HansPassant:あなたの助けは非常に高く評価されています....将来的には完全なスニペットをポストして投稿しようとします.... –
ポイントは*今*、次回ではありません。 –