Передача данных в VB

Тема в разделе "WASM.BEGINNERS", создана пользователем OFFSIDE, 23 сен 2006.

  1. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    OFFSIDE
    Это не ко мне, VB я не знаю. А вообще, код у тебя не правильный. Смотри пример к описанию функции GetProcAddress в PSDK или MSDN.
     
  2. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Попробуй не объявлять StrProc.
    Загрузи длл через LoadLibrary, получи адрес StrProc через GetProcAddress и вызови StrProc через CallWindowProc по этому адресу. Тогда в твоём импорте не будет зашита длл, и возможно ты сможешь её затем выгрузить через FreeLibrary.
     
  3. OFFSIDE

    OFFSIDE New Member

    Публикаций:
    0
    Регистрация:
    23 сен 2006
    Сообщения:
    106
    cresta

    А как тогда правильно передать и получить данные? Ведь мы получаем ссылку на адрес, тип в вб - лонг, а CallWindowProc в качестве аргументов принимает
    ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any,
    то есть мы делаем посылку сообщения окну:dntknw:... wParam и lParam равны 0.

    Код (Text):
    1. Dim c As Long, e As Long, buffer As String, pa As Long
    2. buffer = Space(200)
    3. c = LoadLibrary("testdll.dll")
    4.     pa = GetProcAddress(c, "StrProc")
    5.     CallWindowProc pa, Me.hWnd, "What This ?????", ByVal 0&, ByVal 0&
    6. Dim k As String
    7. e = FreeLibrary(c)
    8. MsgBox e
    9. FormatMessage FORMAT_MESSAGE_FROM_SYSTEM, ByVal 0&, GetLastError, LANG_NEUTRAL, buffer, 200, ByVal 0&
    10. MsgBox buffer