Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вылет функции после выполнения

24K
14 февраля 2008 года
rudeman
13 / / 21.09.2007
Добрый день всем! Подскажите изза чего может возникать у меня ошибка.
Функция следующего вида, часть моего *.ocx.
Код:
typedef struct gss_buffer_desc_struct {
      size_t     length;
      void FAR * value;
} gss_buffer_desc, FAR * gss_buffer_t;

void COleLibCtrl::SubmitError()
{
    int size;
    char message;
    OM_uint32 p_minor_status=0;
    gss_buffer_desc message_buffer;
    FILE* file;
    FILE* cfile;
        char* error_message = "d:/error_message.txt";
        char* error_size = "d:/acquire.txt";
    file = fopen( error_size, "r" );
    fscanf(file,"%d",&size);
    fclose(file);
    message_buffer.length=size;
    message_buffer.value=malloc(message_buffer.length);
    cfile = fopen(error_message, "r" );
    fgets(&message,message_buffer.length, cfile);
    fclose(cfile);
    message_buffer.value=&message;
    HINSTANCE hLIB;
    hLIB=LoadLibrary("C:/LIB.dll");
    ::PFN_MyFunction4 pfnMyFunction4;
    pfnMyFunction4=(PFN_MyFunction4)::GetProcAddress(hLIB,"OPEN_PROT");
    int iCode=(*pfnMyFunction4)(&p_minor_status,log_path,&hProtHandle);
    ::PFN_MyFunction5 pfnMyFunction5;
    pfnMyFunction5=(PFN_MyFunction5)::GetProcAddress(hLIB,"PROT");
    int iCode1=pfnMyFunction5(&p_minor_status, hProtHandle,&message_buffer);
    ::PFN_MyFunction6 pfnMyFunction6;
    pfnMyFunction6=(PFN_MyFunction6)::GetProcAddress(hLIB,"CLOSE_PROT");
    int iCode2=pfnMyFunction6(&p_minor_status,&hProtHandle);
    message_buffer.value=NULL;
    free(message_buffer.value);
    hProtHandle = NULL;
    ::FreeLibrary(hNGsec);
}

Судя по дебагу функция полностью отрабатывает, пишет что returned void, а потом идет вылет...
 
Код:
First-chance exception in TSTCON32.EXE: 0xC0000005: Access Violation.

 
Код:
74696E48   ???
->74696E49   ???
   74696E4A   ???

Вроде все отработало, а вылет идет... Я просто в прострации ((
2.9K
14 февраля 2008 года
Ation
96 / / 27.07.2004
Проверь что тебе возвращает GetProcAddress, и загружается ли длл.
По имени похоже что подразумевался PORT.
fgets(&message,message_buffer.length, cfile); как я понял надо заменить на fgets(message.buffer,message_buffer.length, cfile);
убрать message_buffer.value=&message;
message_buffer.value=NULL; free(message_buffer.value); - удалеешь ты тогда что?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог