Ошибка при получении адреса функции библиотеки
Код следующий...
Цитата:
typedef int ( *PFN_MyFunction)(char *, int *, char * ,int *,char *, int *);
HINSTANCE hCreateCred;
if((hCreateCred=LoadLibrary("CreateCred.dll"))==NULL) return 1;
::PFN_MyFunction pfnMyFunction;
pfnMyFunction=(PFN_MyFunction)::GetProcAddress(hCreateCred,"InitCred");
int iCode=(*pfnMyFunction)("I00001", &id_len, "InitCred()", 0, "INFINITE",0);
::FreeLibrary(hCreateCred);
И при попытке получить адрес функции идет - скидывает его на 0 и далее выдает access violation...
Def файла для библиотеки загружаемой нету...
к тому же, необходимо указать __cdecl или __stdcall при объявлении прототипа.
Появилась правда другая "проблема"..
Вызов функции библиотеки происходит нормально, но окончивается "криво".
При дебаге вызов идет вроде нормально, функция запускается нужная с нужными параметрами
Цитата:
int iCode=(*pfnMyFunction)("I00001", &id_len, "InitCred()", 0, "INFINITE",0);
но не доходя до
Цитата:
::FreeLibrary(hCreateCred);
сразу выбивает
Цитата:
Microsoft® ActiveX Control Test Container - обнаружена ошибка. Приложение будет закрыто. Приносим извинения за неудобства.
и
Цитата:
Инструкция по адресу "0x73d911c7" обратилась к памяти по адресу "0x00000004". Память не может быть "read"
не подскажете изза чего? Оо
pfnMyFunction("I00001", &id_len, "InitCred()", 0, "INFINITE",0);
Кроме того, укажи в определении указателя способ вызова функции, если таковой указывается в её реализации в dll. Например,
typedef int (__stdcall * PFN_MyFunction)(char *, int *, char * ,int *,char *, int *);
Проблема в том, что у меня нет исходников самой подгружаемой библиотеки... Может ли быть что функция эта чтот еще возвращает "не в тему"?