Dll Error
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
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 - обнаружена ошибка. Приложение будет закрыто. Не могу понять в чём здесь проблема. Заранее благодарен.
|
|
|
Dll Error - 2004-07-24 17:49:50
|
|
|
DeepThinker
Сообщений: 177
Оценки: 0
Присоединился: 2004-06-13 02:26:09
|
Да все элементарно - ты в длл-ке функцию не объявил как stdcall, вот при возврате все и падает. Или ты думал, это в длл автоматически делается? К слову, зачем тебе stdcall вообще?
|
|
|
|
|