たとえばこんなクラスを作成します。
//CHello.h
#pragma once
class CHello {
public:
CHello();
~CHello();
void func();
};
//CHello.cpp
#include
#include "CHello.h"
CHello::CHello() {
std::cout !CHelloWrapper(); //ファイナライザを呼ぶ
}
CHelloWrapper::!CHelloWrapper(){
delete object; // ネイティブオブジェクトの解放
}
void CHelloWrapper::Func(){
object->func();
}
ファイナライザがprotectedにしていますがこれはC#のDisposeメソッドがprotectedになっているから合わせてます。
C#/VBのプロジェクトの設定が「Any CPU」になっているので「x86」に変えておく必要があります。