Develop의 Tistory

Language/C#(CLR,.NET)

[C#] C#에서 DLLImport 방법

소소한 늙은 개발자의 메모장 2010. 4. 26. 23:37
반응형
(追記) (追記ここまで)
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)

반응형
(追記) (追記ここまで)

티스토리툴바

AltStyle によって変換されたページ (->オリジナル) /