Прежде, чем Вы сможете вызвать целевую функцию 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.