Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / GetProcAdress ? / 6 сообщений из 6, страница 1 из 1
22.01.2004, 10:37
    #32384159
Ardd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GetProcAdress ?
Мне надо из DLL вызывать функции. Через Reference или Declare не получается: Can't find DLL entry point Start140 (Start140 - это собственно вызываемая функция) in MyDll.
Вобщем надо через LoadLibrary и GetProcAdress ...
Но я с ними не могу разобраться. Помогите !!!

Function hLib()
hLib = LoadLibrary("MyDll.dll")
End Function

LoadLibrary вроде выполняется. Возвращает большой Long, а чё дальше делать не соображу.
??????
GetProcAddress(hLib, "Start140") ???????

FreeLibrary(hLib) тоже выполняется (говорит True)
Но как работать с GetProcAddress ?????????????????
...
Рейтинг: 0 / 0
22.01.2004, 12:33
    #32384461
andreiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GetProcAdress ?
Пример из API-Guide:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
'Create a new project and add this code to Form1'
Private Declare Function FreeLibrary Lib  "kernel32"  (ByVal hLibModule As Long) As Long
Private Declare Function LoadLibrary Lib  "kernel32"  Alias  "LoadLibraryA"  (ByVal lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib  "kernel32"  (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function CallWindowProc Lib  "user32"  Alias  "CallWindowProcA"  (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any) As Long
Private Sub Form_Load()
    On Error Resume Next
    'KPD-Team 1999'
    'URL: http://www.allapi.net/'
    'E-Mail: KPDTeam@Allapi.net'
    'We are going to call an API-function, without declaring it!'
    Dim lb As Long, pa As Long
    'map user32 into the address space of the calling process.'
    lb = LoadLibrary( "user32" )
    'retrieve the address of SetWindowTextA'
    pa = GetProcAddress(lb,  "SetWindowTextA" )
    'Call the SetWindowTextA-function'
    CallWindowProc pa, Me.hWnd,  "Hello !" , ByVal  0 &, ByVal  0 &
    'unmap the library's address'
    FreeLibrary lb
End Sub
...
Рейтинг: 0 / 0
22.01.2004, 14:27
    #32384715
Ardd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GetProcAdress ?
Function hLib()
Dim nDllLib As Long, pAdr As Long

nDllLib = LoadLibrary("MyDll.dll")
pAdr = GetProcAddress(nDllLib, "Statr140")
CallWindowProc pAdr, 1, ByVal 0&, ByVal 0&, ByVal 0&
'1-это передаю параметр в Start140 (там всего один Integer)
FreeLibrary nDllLib

End Function

Недопустимая ошибка и каюк :-( (т.е полный вылет)
...
Рейтинг: 0 / 0
23.01.2004, 10:11
    #32385651
Ardd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GetProcAdress ?
Мужики, так что дела-а-а-а-а-ать !!!!!!
...
Рейтинг: 0 / 0
23.01.2004, 13:07
    #32386078
andreiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GetProcAdress ?
перепутал параметры:

CallWindowProc pAdr, Me.hWnd, 1, ByVal 0&, ByVal 0&
...
Рейтинг: 0 / 0
23.01.2004, 14:35
    #32386255
Ardd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GetProcAdress ?
Все равно: недопустимая ошибка.

Может надо другую какую функцию?
CallWindowProc все с окнами какими-то...
А мне заставить выполнить функцию из DLL, и плюс еще туда параметр передать.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / GetProcAdress ? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]