C#에서 만든 DLL 사용하기
C#에서 만들어진 DLL 사용하는 방법은 매우 쉽다. using 키워드로 해당 DLL 을 불러온 후에 일반 클래스 사용하듯이 사용하면 된다.
using MyDLL;
static void Main (string[] args)
{
// MyDLL에 정의된 클래스로 객체 정의하기
Calcurate cal = new Calcurate();
int resultAdd = cal.add(1, 2);
int resultMinus = cal.minus(5, 3);
int resultMultiply = cal.multiply(2, 4);
int resultDivide = cal.divide(6, 3);
}
C#
복사
C, C++에서 만든 DLL 사용하기
C나 C++로 만든 DLL은 System.Runtime.InteropServices을 using 한 후에, DLLImport라는 애트리뷰트와 extern이라는 키워드를 이용해서 사용해야 한다.
using System.Runtime.InteropServices;
public class SqliteDatabase
{
[DllImport("sqlite3", EntryPoint = "sqlite3_open")]
private static extern int sqlite3_open (string filename, out IntPtr db);
...
void Open (string path)
{
IntPtr _connection;
if (sqlite3_open (path, out _connection) != 0)
{
throw new SqliteException ("Could not open database file: " + path);
}
}
}
C#
복사
extern은 해당 메서드의 구현을 바깥 –여기서는 DLL– 에 맡긴다는 의미다. extern 한정자가 붙은 메서드는 static으로 선언되어야 한다.
extern 키워드가 들어간 함수 이름과 매개변수는 DLL 코드 안에 정의된 것과 같아야 한다. 이렇게 정의된 메서드는 일반 메서드처럼 사용할 수 있다.
위와 같은 기본타입 —int, double, string— 외에 더 복잡한 데이터 타입에 대해 C++의 DLL과 연동한다면 아래 글 참조