Function Reference

_WinAPI_LoadLibraryEx

指定された実行モジュールを呼び出し元プロセスのアドレス空間にマッピングします。

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

 

パラメータ

$sFileName Win32実行モジュールの名前(.DLLファイルまたは.EXEファイル)。
指定される名前は実行モジュールのファイル名です。
$iFlags [オプション]モジュールロード時の処理を指定します。このパラメータは次の値の1つまたは複数です:
$DONT_RESOLVE_DLL_REFERENCES - この値が使用され実行モジュールがDLLの場合、システムはプロセス、スレッド初期化、終了のためにDllMainを呼びません。 またシステムは指定されたモジュールで参照されている追加実行モジュールをロードしません。
$LOAD_LIBRARY_AS_DATAFILE - この値が使用された場合、システムはファイルを呼び出し元プロセスのアドレス空間にデータファイルと同じようにマッピングします。 マップされたファイルの実行、実行準備のための処理はおこなわれません。
$LOAD_WITH_ALTERED_SEARCH_PATH - この値が使用され$FileNameがパスだった場合、 システムは指定したモジュールが原因でロードされる関連実行可能モジュールを見つけるためのファイル検索処理を代わりに使用します。

 

返し値

成功: 実行モジュールのハンドル
失敗: 0

 

注意

定義済み定数用にConstants.au3が必要です。

 

関連

_WinAPI_LoadLibrary, _WinAPI_FreeLibrary, _WinAPI_LoadString

 

こちらも参照

MSDNライブラリでLoadLibraryExを検索して下さい。

 


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

Opt('MustDeclareVars', 1)

Global $iMemo

_Main()

Func _Main()
    Local $hGUI, $hInput, $btn_get, $hReBar, $hInstance, $sText
    ; GUI作成
    $hGUI = GUICreate("WinAPI", 400, 396)
   
    $hInput = GUICtrlCreateInput("4209", 0, 0, 100, 20)

    ; リバーコントロールを作成
    $hReBar = _GUICtrlReBar_Create($hGUI, BitOR($CCS_TOP, $WS_BORDER, $RBS_VARHEIGHT, $RBS_AUTOSIZE, $RBS_BANDBORDERS))
   
    $iMemo = GUICtrlCreateEdit("", 2, 55, 396, 200, BitOR($WS_VSCROLL, $WS_HSCROLL))
    GUICtrlSetFont($iMemo, 10, 400, 0, "Courier New")


    ; コントロールを格納したバンドを追加
    _GUICtrlReBar_AddBand($hReBar, GUICtrlGetHandle($hInput), 120, 200, "String ID:")

    $btn_get = GUICtrlCreateButton("Get String", 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('Got the String (chars: ' & @extended & '): ' & @CRLF & $sText)
                    Else
                        MemoWrite("Last Error Message: " & @CRLF & _WinAPI_GetLastErrorMessage())
                    EndIf
                    MemoWrite(@CRLF & "Success Freeing? " & _WinAPI_FreeLibrary($hInstance))
                EndIf
        EndSwitch
    WEnd
EndFunc   ;==>_Main

; メモ帳にメッセージを書き込む
Func MemoWrite($sMessage = "")
    GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite