Функция _WinAPI_LoadLibraryEx

 ↑  ←  Описание функции


_WinAPI_LoadLibraryEx

Сопоставляет указанный исполняемый модуль в адресное пространство вызывающего процесса

#include <WinAPI.au3>
_WinAPI_LoadLibraryEx($sFileName [, $iFlags = 0])

Параметры

$sFileName Имя Win32 исполняемого файла или библиотеки, являющееся модулем (любой DLL или EXE файлы). Имя является файловым именем модуля.
$iFlags [необязательный] Указывает действие, выполняемое при загрузке модуля. Этот параметр может быть одним из следующих значений:
    $DONT_RESOLVE_DLL_REFERENCES - If this value is used and the executable module is a DLL the system does not call DllMain for process and thread initialization and termination. Also, the system does not load additional executable modules that are referenced by the specified module.
    $LOAD_LIBRARY_AS_DATAFILE - If this value is used, the system maps the file into the calling process's address space as if it were a data file. Nothing is done to execute or prepare to execute the mapped file.
    $LOAD_WITH_ALTERED_SEARCH_PATH - If this value is used, and $FileName specifies a path, the system uses the alternate file search strategy to find the associated executable modules that the specified module causes to be loaded.

Возвращаемое значение

Успех:Возвращает дескриптор исполняемого модуля
Ошибка:Возвращает 0

Примечания

Для выше указанных констант необходим Constants.au3

См. также

_WinAPI_LoadLibrary, _WinAPI_FreeLibrary, _WinAPI_LoadString

См. также

Искать LoadLibraryEx в библиотеке MSDN

Пример

#include <GuiReBar.au3>
#include <WinAPI.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>

Global $iMemo

_Main()

Func _Main()
    Local $hGUI, $hInput, $btn_get, $hReBar, $hInstance, $sText
    ; Создаёт GUI
    $hGUI = GUICreate("WinAPI", 400, 260)

    $hInput = GUICtrlCreateInput("4209", 0, 0, 100, 20)

    ; Создаёт элемент ReBar
    $hReBar = _GUICtrlRebar_Create($hGUI, BitOR($CCS_TOP, $WS_BORDER, $RBS_VARHEIGHT, $RBS_AUTOSIZE, $RBS_BANDBORDERS))

    $iMemo = GUICtrlCreateEdit("", 2, 30, 396, 200, BitOR($WS_VSCROLL, $WS_HSCROLL))
    GUICtrlSetFont($iMemo, 10, 400, 0, "Courier New")


    ; Добавляет ленту, содержащую элемент
    _GUICtrlRebar_AddBand($hReBar, GUICtrlGetHandle($hInput), 120, 200, "ID строки:")

    $btn_get = GUICtrlCreateButton("Получить строку", 0, 0, 90, 20)

    ; Добавляет ленту, содержащую элемент
    _GUICtrlRebar_AddBand($hReBar, GUICtrlGetHandle($btn_get), 120, 200)


    GUISetState()

    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                Exit
            Case $btn_get
                GUICtrlSetData($iMemo, "")
                $hInstance = _WinAPI_LoadLibraryEx("shell32.dll", $LOAD_LIBRARY_AS_DATAFILE)
                If $hInstance Then
                    $sText = _WinAPI_LoadString($hInstance, GUICtrlRead($hInput))
                    If Not @error Then
                        MemoWrite('Получена строка (' & @extended & ' символов): ' & @CRLF & $sText)
                    Else
                        MemoWrite("Последнее сообщение об ошибке: " & @CRLF & _WinAPI_GetLastErrorMessage())
                    EndIf
                    MemoWrite(@CRLF & "Успешное освобождение? " & _WinAPI_FreeLibrary($hInstance))
                EndIf
        EndSwitch
    WEnd
EndFunc   ;==>_Main

; Записывает строку в элемент для заметок
Func MemoWrite($sMessage = "")
    GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite