Ошибка при вызове функции библиотеки

  • Автор темы rudeman
  • Дата начала
R

rudeman

Гость
#1
Добрый день! Подскажите пожалуйста, почему возникает ошибка..

Код следующий...

Код:
typedef int ( *PFN_MyFunction)(char *, int *, char * ,int *,char *, int *);

HINSTANCE hCreateCred;
if((hCreateCred=LoadLibrary("CreateCred.dll"))==NU LL) return 1;
::PFN_MyFunction pfnMyFunction;
pfnMyFunction=(PFN_MyFunction)::GetProcAddress(hCr eateCred,"InitCred");
int iCode=(*pfnMyFunction)("I00001", &id_len, "InitCred()", 0, "INFINITE",0);
::FreeLibrary(hCreateCred);
И при попытке получить адрес функции идет - скидывает его на 0 и далее выдает access violation...
Def файла для библиотеки загружаемой нету...
 

grigsoft

Well-Known Member
15.11.2005
735
0
#2
Возможно функции из этой длл не расчитаны на такое использование - посмотри чем нибудь экспорт-секцию (я обычно depends.exe использую) - может там С-обрамление имен не отключено.
 
R

rudeman

Гость
#3
Да... обрамление и было ) Спасиб))
Терь трабла другая... вызов функции библиотеки происходит нормально, но окончивается "криво"
При дебаге вызов идет вроде нормально, функция запускается нужная с нужными параметрами
Код:
int iCode=(*pfnMyFunction)("I00001", &id_len, "InitCred()", 0, "INFINITE",0);
но не доходя до
Код:
::FreeLibrary(hCreateCred);
сразу выбивает
Microsoft® ActiveX Control Test Container - обнаружена ошибка. Приложение будет закрыто. Приносим извинения за неудобства.
и
Инструкция по адресу "0x73d911c7" обратилась к памяти по адресу "0x00000004". Память не может быть "read"
не подскажете изза чего? Оо