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 UserImportDLL14: {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 : Form20: {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)
'Language > C#(CLR,.NET)' 카테고리의 다른 글
C# DataSet, DataTable을 XML, XSD로 저장 (0) | 2012.06.12 |
---|---|
C#에서 Oracle LOB(CLOB) 데이터 입력 방법 (0) | 2012.06.12 |
해당 파일을 다른 프로세스에서 사용 중인지 체크 (0) | 2012.06.08 |
[C#] 오픈다이얼로그(OpenFileDialog)에서 다중선택(Multiselect)시 1000개 이상 파일을 가져오지 못하는 경우 (0) | 2012.03.08 |
[C#] 실행 경로(또는 현재 경로)를 알아내는 방법 (1) | 2011.08.11 |