선언:
C#
[DllImport("kernel32")]
public static extern IntPtr GetModuleHandle(String moduleName);
VB.NET
<DllImport("kernel32")> _
Public Shared Function GetModuleHandle(moduleName As String) As IntPtr
End Function
사용 예제:
C#
using System;
using System.Runtime.InteropServices;
namespace ApiReference {
class ApiExample {
[DllImport("kernel32")]
public static extern IntPtr GetModuleHandle(String moduleName);
public static void Main(string[] args) {
EnterModuleName:
Console.Write("핸들을 가져올 모듈 이름을 입력하세요: ");
String moduleName = Console.ReadLine().Trim();
if ( String.IsNullOrEmpty(moduleName) ) {
Console.WriteLine("다시 입력하세요");
goto EnterModuleName;
}
IntPtr moduleHandle = GetModuleHandle(moduleName);
if ( moduleHandle == IntPtr.Zero )
Console.WriteLine("모듈 핸들 가져오기 실패!");
else
Console.WriteLine("가져온 모듈 핸들: 0x{0:X8}", moduleHandle.ToInt32());
Console.ReadKey(true);
}
}
}
VB.NET
Imports System
Imports System.Runtime.InteropServices
Namespace ApiReference
Class ApiExample
<DllImport("kernel32")> _
Public Shared Function GetModuleHandle(moduleName As String) As IntPtr
End Function
Public Shared Sub Main(args As String())
EnterModuleName:
Console.Write("핸들을 가져올 모듈 이름을 입력하세요: ")
Dim moduleName As String = Console.ReadLine().Trim()
If String.IsNullOrEmpty(moduleName) Then
Console.WriteLine("다시 입력하세요")
GoTo EnterModuleName
End If
Dim moduleHandle As IntPtr = GetModuleHandle(moduleName)
If moduleHandle = IntPtr.Zero Then
Console.WriteLine("모듈 핸들 가져오기 실패!")
Else
Console.WriteLine("가져온 모듈 핸들: 0x{0:X8}", moduleHandle.ToInt32())
End If
Console.ReadKey(True)
End Sub
End Class
End Namespace
예제 실행 결과:
매개 변수 설명:
moduleName - 불러올 모듈의 이름을 입력합니다.
API 설명:
모듈의 핸들을 가져옵니다.
참고:
GetModuleHandle (MSDN)
비고:
moduleName 매개 변수에는 dll 또는 exe 파일이 올 수 있으며, 확장자가 생략된 경우엔 dll 파일을 검색합니다.
또한, LoadLibraryEx 로 불러온 라이브러리 중 LOAD_LIBRARY_AS_DATAFILE 옵션을 이용해서 불러온 모듈은 검색하지 않습니다.
* 이제 API 참고 문서에 예제 실행 결과도 추가하였습니다!
자주 이용 부탁드립니다! !
'API Reference' 카테고리의 다른 글
20. DebugActiveProcess (0) | 2014.10.03 |
---|---|
19. LoadLibrary (0) | 2014.10.01 |
17. FormatMessage (0) | 2014.09.29 |
16. GetLastError (0) | 2014.09.27 |
15. GetAsyncKeyState (0) | 2014.09.26 |