powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / GetProcAdress ?
6 сообщений из 6, страница 1 из 1
GetProcAdress ?
    #32384159
Ardd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне надо из 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
GetProcAdress ?
    #32384461
andreiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пример из 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
GetProcAdress ?
    #32384715
Ardd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
GetProcAdress ?
    #32385651
Ardd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мужики, так что дела-а-а-а-а-ать !!!!!!
...
Рейтинг: 0 / 0
GetProcAdress ?
    #32386078
andreiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
перепутал параметры:

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

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


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