проблема при подключении dll
От: Аноним  
Дата: 23.04.07 09:09
Оценка:
Привет всем!
В общем пытаюсь сейчас сделать dll которую бы я мог динамически подключать. При попытке передачи в функцию dll параметра вылетает:
"The value of ESP was not properly saved across a function call. This is usually a result of calling a
function declared with one calling convention with a function pointer declared with a different calling
convention."

нажимаю кнопку пропустить — отрабатывается нормально(в смысле вызываетя функция и функция отрабатывает правильно)... При подключении функции без параметров проблем не возникает...
Привожу код:
работающий.
в длл
extern "C" __declspec(dllexport) int fun1()
{
    return 34;
}

в программе
typedef int (CALLBACK* LPFNDLLFUNC1)(void);
...
HINSTANCE hDLL; 
LPFNDLLFUNC1 lpfnDllFunc1; 
hDLL = LoadLibrary("sample dll.dll");
lpfnDllFunc1 = (LPFNDLLFUNC1)GetProcAddress(hDLL,"fun1");
int i = lpfnDllFunc1();
...

Выдающий ошибку
extern "C" __declspec(dllexport) int fun1(int i)
{
    return 34+i;
}

в программе
typedef int (CALLBACK* LPFNDLLFUNC1)(int);
...
HINSTANCE hDLL; 
LPFNDLLFUNC1 lpfnDllFunc1; 
hDLL = LoadLibrary("sample dll.dll");
lpfnDllFunc1 = (LPFNDLLFUNC1)GetProcAddress(hDLL,"fun1");
int i = lpfnDllFunc1(5);
...


Зарание спасибо!
З.Ы. Буду благодарен за ссылки на документы где хорошо описана работа длл.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.