Получение адреса функции DLL


Прежде, чем Вы сможете вызвать целевую функцию MyPrint из 16-разрядного кода, который загрузил DLL32, Вы должны получить её адрес, используя функцию GetProcAddress32W. Например:

// Получим адрес процедуры MyPrint в DLL, базирующейся на Win32
typedef void (FAR PASCAL *MYPROC)(LPSTR);
MYPROC hProc;

if( NULL == (hProc = (MYPROC)GetProcAddress32W( ghLib, "MyPrint" ))) 
{
    MessageBox( hWnd, "Cannot call DLL function", "App16", MB_OK );
    ...
}

Если Вы изолируете ваш код переключения вызова с 16- на 32-битовый модуль и обратно в DLL16, поместите вызов функции GetProcAddress32W в функцию MyPrint кода DLL16.

Назад в оглавление
На главную страницу темы
Перевод 25.10.2007 13:04 ©Copyright V. Sokovikov
Hosted by uCoz