Как в Visual Basic 6 правильно описать загрузку библиотеки диалогов через функцию mapLoadLibrary? Пробуем написать в VB6 код, который аналогичен следующему: HINSTANCE lib; // Определить прототип функции selSaveSelect long int (WINAPI * func)(HMAP hmap); // Загрузить библиотеку (FARPROC)func = mapLoadLibrary("mapselec.dll", &lib, "selSaveSelect"); if (func == 0) return; // Вызвать функцию (*func)(hMap); // Выгрузить библиотеку FreeLibrary(lib); Делаем так: 'Объявляем глобальную переменную - идентификатор библиотеки Global lib As Long 'Объявляем функцию загрузки библиотек Declare Function mapLoadLibrary Lib "c:\Panorama7\mapacces.dll" _ (ByRef dllname As String, ByRef libinst As Long, _ ByRef funcname As String) _ As Long В программе: Public Sub CmSelect() Dim func As Long Dim note As Long 'Определяем идентификатор процесса ipPrevWinProc = SetWindowLong(Form1.hwnd, GWL_WNDPROC, _ AddressOf CmSelect) 'присваиваем значенте переменной func = SetWindowLong(Form1.hwnd, GWL_WNDPROC, ipPrevWinProc) MsgBox "func=" & func func = mapLoadLibrary("c:\Panorama7\mapselec.dll", _ lib, "selSetViewStaff") If func = 0 Then Exit Sub Как делать дальше? Или все полностью неверно? Так (см. далее) не пашет... '// Вызвать функцию ' (*func)(hMap); End Sub
Ответить
|