Win 32 Dll работает в Activex, но падает в C ++ / c # Test Application

Я написал C ++ dll, для которого я должен написать оболочку C #. В обертке Activex функции c ++ работают правильно. Но в тестовом приложении и оболочке C #, код запускается один раз, и в следующий раз я получаю исключение памяти, как это.

Необработанное исключение в 0x0055365a (msvcr80d.dll) в TestApplication.exe: 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;

}

Я пытаюсь очистить функцию, прежде чем выделить ее. Он работает на первом цикле правильно. Сбой во второй раз.

Я делаю это правильно?

0

Решение

Вот что происходит.

  • Что у вас есть ошибка.
  • То, что вам нужно, это отладчик.

Загрузите его в отладчик, установите точку останова в этой строке или просто пропустите его, и когда произойдет нарушение доступа, отладчик скажет вам точно, что не так.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector