C#ラッパーを作成する必要があるC++dllを作成しました。ActiveXラッパーでは、c++関数は正しく機能しています。しかし、テストアプリケーションとC#ラッパーでは、コードが1回実行され、次回はこのようなメモリ例外が発生します。
TestApplication.exeの0x0055365a(msvcr80d.dll)で未処理の例外:0xC0000005:アクセス違反の書き込み場所0x00000001。
以下に示すmemsetラインでのエラーを示すスタックトレース。
VOID Clear () {
if (byFeature != NULL) {
memset (this->byFeature, '\0', VF_MAX_FEATURES_SIZE - 1 ); ==> crash at this line
this->iFeatureSize = 0;
}
else
this->iFeatureSize = 0;
this->iMinutiaeCount = 0;
this->G = 255;
}
割り当てる前にbyFeatureをクリアしようとしています。最初のサイクルで適切に実行されます。2回目にクラッシュします。
私はそれを正しくやっていますか?