Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Dll Error

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Dll Error
Имя
Сообщение << Старые топики   Новые топики >>
Dll Error - 2004-07-23 16:01:25   
Silence

Сообщений: 4
Оценки: 0
Присоединился: 2004-05-23 01:08:53
Люди помогите plz разобраться в чём тут проблема.
Вот есть такой код одной программки :
//——————————————————————————————————————
#include <windows.h>
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE pHinstance, LPSTR cmd, int n)
{
HMODULE mydll;
mydll = LoadLibrary("a.dll");
void (__stdcall *Functie)(int, int);
Functie = (void (__stdcall *)(int, int))GetProcAddress(mydll, "_Suma");
if(Functie == NULL)
{
MessageBox(NULL, "Nu-i nica, dracule!", "Mesaj",NULL);
FreeLibrary(mydll);
return 0;
}
Functie(10, 20);
FreeLibrary(mydll);
return 0;
}
//——————————————————————————————————————
И динамической библиотеки:
//——————————————————————————————————————
#include <windows.h>
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved)
{
return 1;
}
__declspec( dllexport )void Suma(int, int);
void Suma(int a, int b)
{
int sum = a + b;
char d[30] = {0};
wsprintf(d, "Sum is: [%lu]", sum);
MessageBox(NULL, d, NULL,NULL);
return;
}
//——————————————————————————————————————-

Запускаю программу всё нормально. Появляется окошко с надписью «Sum is:[…]». Нажимаю OK.
По идеи процесс должен завершиться но появляется другое окошко с надписью:
Project1.exe - обнаружена ошибка. Приложение будет закрыто.
Не могу понять в чём здесь проблема.
Заранее благодарен.
Post #: 1
Dll Error - 2004-07-24 17:49:50   
DeepThinker

Сообщений: 177
Оценки: 0
Присоединился: 2004-06-13 02:26:09
Да все элементарно - ты в длл-ке функцию не объявил как stdcall, вот при возврате все и падает. Или ты думал,
это в длл автоматически делается? К слову, зачем тебе stdcall вообще?
Post #: 2
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Dll Error







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.