WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Явная загрузка DLL

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Явная загрузка DLL
Nicholas опубликован 29-04-2001 21:04 MSK   Click Here to See the Profile for Nicholas   Click Here to Email Nicholas  
Народ, кто может кинуть примерчик или дать ссылку, где можно почитать про загрузку DLL
Для Visual C++.

На
LRESULT CALLBACK *pBD(int,WPARAM,LPARAM);

MSG msg;
//----------------
hLib=LoadLibrary("simp.dll");
if(hLib)
{
pBD=GetProcAddress(hLib,"BD");

пишет : left-side modifier' : cannot modify pointers to data

rivitna опубликован 30-04-2001 08:59 MSK     Click Here to See the Profile for rivitna  Click Here to Email rivitna     
Все делаешь правильно, только надо привести указатели к одному типу:


typedef LRESULT (CALLBACK *PFNBD)(int, WPARAM, LPARAM);

MSG msg;
PFNBD pBD;
//----------------
hLib=LoadLibrary("simp.dll");
if(hLib)
{
pBD=(PFNBD)GetProcAddress(hLib,"BD");


Перед использованием pBD, убедись, что pBD != NULL.

Я думаю, теперь все будет работать.
Успехов!

Nicholas опубликован 01-05-2001 22:14 MSK     Click Here to See the Profile for Nicholas  Click Here to Email Nicholas     
Спасибо, rivitna. Сработало - ошибки больше не выдает. Но и ничего функция не делает.
Например,
LRESULT CALLBACK BD(int nCode, WPARAM wParam, LPARAM lParam)
{
MessageBeep(-1);
MessageBeep(-1);
MessageBeep(-1);
MessageBeep(-1);
return 0;
}
длжна пищать, а она не пищит :)
В чем дело?
Kosha опубликован 02-05-2001 03:55 MSK     Click Here to See the Profile for Kosha  Click Here to Email Kosha     
а дебагом? ;-)))
rivitna опубликован 02-05-2001 12:13 MSK     Click Here to See the Profile for rivitna  Click Here to Email rivitna     
Я бы тоже отладчиком посмотрел...

Может, неправильно функцию в simp.dll импортируешь, посмотри внимательней

Nicholas опубликован 02-05-2001 18:09 MSK     Click Here to See the Profile for Nicholas  Click Here to Email Nicholas     
Заработало!
Я неправильно экспортировал функцию. :)
Дело в том, что я разбирался с загрузкой функции по примеру, а там было
extern "C" __declspec(dllexport) LRESULT CALLBACK BD(int, WPARAM, LPARAM);

Я убрал LRESULT и CALLBACK - и все заработало. Правда, до конца, так и не понял, что они делают. Кто-нибдь сможет объяснить, если не лень будет? ;)

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.