선언:

C#

[DllImport("kernel32")]
public static extern IntPtr LoadLibrary(String fileName);


VB.NET

<DllImport("kernel32")> _
Public Shared Function LoadLibrary(fileName As StringAs IntPtr
End Function




사용 예제:

C#

using System;
using System.Runtime.InteropServices;

namespace ApiReference {
    class ApiExample {
        [DllImport("kernel32")]
        public static extern IntPtr LoadLibrary(String fileName);
        
        public static void Main(string[] args) {
        EnterFileName:
            Console.Write("불러올 파일 이름을 입력하세요: ");
            String fileName = Console.ReadLine().Trim();
            if ( String.IsNullOrEmpty(fileName) ) {
                Console.WriteLine("다시 입력하세요");
                goto EnterFileName;
            }
            
            IntPtr libHandle = LoadLibrary(fileName);
            if ( libHandle == IntPtr.Zero )
                Console.WriteLine("파일 불러오기 실패!");
            else
                Console.WriteLine("불러온 파일 핸들: 0x{0:X8}", libHandle.ToInt32());
                
            Console.ReadKey(true);
        }
    }
}


VB.NET

Imports System
Imports System.Runtime.InteropServices

Namespace ApiReference
    Class ApiExample
        <DllImport("kernel32")> _
        Public Shared Function LoadLibrary(fileName As StringAs IntPtr
        End Function

        Public Shared Sub Main(args As String())
            EnterFileName:
            Console.Write("불러올 파일 이름을 입력하세요: ")
            Dim fileName As String = Console.ReadLine().Trim()
            If [String].IsNullOrEmpty(fileName) Then
                Console.WriteLine("다시 입력하세요")
                GoTo EnterFileName
            End If

            Dim libHandle As IntPtr = LoadLibrary(fileName)
            If libHandle = IntPtr.Zero Then
                Console.WriteLine("파일 불러오기 실패!")
            Else
                Console.WriteLine("불러온 파일 핸들: 0x{0:X8}", libHandle.ToInt32())
            End If

            Console.ReadKey(True)
        End Sub
    End Class
End Namespace




예제 실행 결과:




매개 변수 설명:

fileName - 불러올 파일의 이름을 입력합니다.




API 설명:

파일을 불러옵니다.




참고:

LoadLibrary (MSDN)




비고:

이 API도 GetModuleHandle API와 마찬가지로, 파일의 확장자가 생략되면 기본값으로 파일 이름에 .dll  확장자가 붙게 됩니다.

전체 경로가 주어진 경우, 해당 경로에서만 파일을 찾습니다.

이 API로 모듈을 불러올 경우, 참조 카운트가 증가하므로 모듈에 대한 작업을 완료하였으면 FreeLibrary API로 참조 카운트를 줄여주는 것이 좋습니다.



'API Reference' 카테고리의 다른 글

21. GetWindowText  (0) 2014.10.04
20. DebugActiveProcess  (0) 2014.10.03
18. GetModuleHandle  (0) 2014.09.30
17. FormatMessage  (0) 2014.09.29
16. GetLastError  (0) 2014.09.27

+ Recent posts