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)

+ Recent posts