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);
}
Вылет функции после выполнения
Функция следующего вида, часть моего *.ocx.
Код:
Судя по дебагу функция полностью отрабатывает, пишет что returned void, а потом идет вылет...
Код:
First-chance exception in TSTCON32.EXE: 0xC0000005: Access Violation.
Код:
74696E48 ???
->74696E49 ???
74696E4A ???
->74696E49 ???
74696E4A ???
Вроде все отработало, а вылет идет... Я просто в прострации ((
По имени похоже что подразумевался 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); - удалеешь ты тогда что?