Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вызов функции из DLL
|
|||
|---|---|---|---|
|
#18+
Есть такой код: lb = LoadLibrary("Lib1.DLL") pa = GetProcAddress(lb, "Fun1") Как теперь вызвать функцию Fun1? В различных примерах в Интернете встречается либо вызов этой функции в отдельном процессе например hThread = CreateThread(ByVal 0&, 0&, pa, 0&, 0&, ThreadID) либо с помощью вызова процедуры окна CallWindowProc. А можно ли просто вызвать функцию имея ее адрес то есть Call pa? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 10:32 |
|
||
|
Вызов функции из DLL
|
|||
|---|---|---|---|
|
#18+
Если ты знаешь имя функции и ее аргументы, то почему не хочешь использовать: Declare Function NameFunction Lib "NameLibrary" Alias "AliasNameFun" (.......) As .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 10:46 |
|
||
|
Вызов функции из DLL
|
|||
|---|---|---|---|
|
#18+
>>Если ты знаешь имя функции и ее аргументы, то почему не хочешь использовать: >>Declare Function NameFunction Lib "NameLibrary" Alias "AliasNameFun" (.......) As .... потому что имя вызываемой функции определяется во время выполнения программы другими словами - как можно разыменовать указатель на функцию полученый после вызова GetProcAddress? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 11:02 |
|
||
|
Вызов функции из DLL
|
|||
|---|---|---|---|
|
#18+
Не нужно ждать от VB такой же логики в программировании линковки Dll как например у Delphi или Visual Си. Прикол с VB заключается в том что он не различает статическую и динамическую подгрузку Dll библиотек. Когда ты объявляешь: Declare Function NameFunction Lib ...... - это не значит, что твоя программа автоматом загрузит Dll при старте. Нифига. Она спокойно запустится даже если Dll вообще нет на компе, и только когды ты первый раз обратишься к функции из этой Dll, только тогда произойдет поиск и загрузка Dll. Вообщем VB всячески скрывает (маскирует) работу с памятью и все делает сам, тебе не доверяет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 11:48 |
|
||
|
Вызов функции из DLL
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 14:27 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32405141&tid=2170092]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
89ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 258ms |
| total: | 427ms |

| 0 / 0 |
