VS2008에서 User32.DLL 파일을 Import하여 함수를 호출하는 방법입니다.
이런 방식을 동적DLL호출(?) 이라고 하는지 모르겠습니다.
델파이에서는 동적호출이라고 명하는 걸로 기억하고 있습니다.
코드 설명은 간략히 기술하겠습니다.
길어봐야 별거 없다고 판단되어집니다. ^^
주의할 사항은 Import 해 올 DLL 파일을 반드시 아래 경로에 존재 하여야 한다.
- [%SystemRoot%] (Windows 디렉토리)
- [%SystemRoot%]\system32\ 경로 (Microsoft Windows XP 일 경우)
- 실행파일(현재 작업) 디렉토리에 같이 위치
- 환경변수 PATH 상의 경로(비추천)
1: using System;
2: using System.Runtime.InteropServices;
3: using System.Collections.Generic;
4: using System.ComponentModel;
5: using System.Data;
6: using System.Drawing;
7: using System.Linq;
8: using System.Text;
9: using System.Windows.Forms;
10:
11: namespace DLLImport
12: {
13: public class UserImportDLL
14: {
15: [DllImport("User32.dll")]
16: public static extern int MessageBox(int hParent, string Message, string Caption, int Type);
17: }
18:
19: public partial class Form1 : Form
20: {
21:
22:
23: public Form1()
24: {
25: InitializeComponent();
26: }
27:
28: private void button1_Click(object sender, EventArgs e)
29: {
30: UserImportDLL.MessageBox(0, "모든 프로그램의 기본은 항상 '헬로우 월드!'", "Message Box Title", 0);
31: }
32: }
33: }
Line 2: using System.Runtime.InteropServices; // DLLImport를 정의 하고 있는 네임스페이스
Line 15, 16에서 Import 및 사용할 함수 정의
Line 30에서 호출하여 사용
※ 호출 시 Class안에 쌓아서 호출하였으나 그냥 호출도 가능 => 밑줄 친 소스만 잘 활용하면 가능함
출처 : 자작(http://userpark.net)