선언:
C#
[DllImport("kernel32")]
public static extern IntPtr LoadLibrary(String fileName);
VB.NET
<DllImport("kernel32")> _
Public Shared Function LoadLibrary(fileName As String) As 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 String) As 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 |