c ++ msv c: приложение вылетает после выхода (отображается только в средстве просмотра событий) - PullRequest
0 голосов
/ 06 мая 2020

Я новичок в C ++. Я создал небольшой, очень простой инструмент c cli для доступа к устаревшей 32-битной dll сторонних разработчиков. Инструменты работают, и я получаю верные значения. Сначала я этого не заметил, но затем в программе просмотра событий windows я увидел много записей об ошибках, вызванных этим инструментом. Они появляются только после того, как код выхода уже возвращен.

Код исключения - 0xc0000005 (нарушение прав доступа, верно?), И это вызвано dll (имя сбойного модуля).

Основная часть моего кода такова:

typedef long (__cdecl *f_myFunc)(const char* smi, float_t &logi, long &numContrib, handle_t &contrib);

int main(int argc, char *argv[], char *envp[]) {
    HINSTANCE hGetProcIDDLL = LoadLibrary("/path/to/dll")
    f_myFunc myFunc = (f_myFunc)GetProcAddress(hGetProcIDDLL, "myFunc");
    //use myFunc multiple times
    FreeLibrary(hGetProcIDDLL);

    return 0;
}

Ошибка возникает ровно одна за один запуск приложения. Само приложение читает файл и вызывает myFun c один раз для каждой строки в файле.

Итак, мой вопрос в том, что я не очищаю должным образом, что вызывает эту ошибку?

...