DLL 만들고 사용하는 방법 정리
Computer Science/프로그래밍 TIP반응형
dll을 만드는 방법
일반적으로 DLL 을 만드는 방법은 여러가지 책과 웹페이지에 많이 나와있다.
프로젝트를 만들때 정적 또는 동적 DLL을 선택한 다음에 __declspec(dllexport)를 이용해서 DLL을 선언하면 된다.
예제)
extern "C" __declspec(dllexport) INT Factory(INT n)
{
if(n<=1)
return 1;
else
return (n*Factory(n-1));
}
사용하는 쪽에서는 LoadLibrary함수와 GetProcAddress함수를 이용해서 해당 DLL을 로드하고 함수를 찾아내서 호출하면 된다.
예제)
HINSTANCE hDll;
hDll = LoadLibrary(_T("Example.dll"));
typedef int(*FactoryFunc)(int num);
FactoryFunc lpFactoryFunc;
lpFactoryFunc = (FactoryFunc)GetProcAddress(hDll, "Factory");
lpFactoryFunc(4)
// 위 예제에는 에러처리코드들은 다 빠졌다.
그런데 위의 형태는 코드를 가독하기에 까다로운 예약어들이 많이 나와있다. 예약어 없이 깔끔하게 하는 방법은 def파일을 이용하는 것이다.
DLL프로젝트에 "모듈 정의 파일 파일(.def)"를 추가한다. (Visual Studio 2003이상에서부터 지원하는 것으로 안다.)
추가하고 EXPORTS밑에 외부에서 호출될 DLL들을 나열하면 된다.
이렇게 하면 위의 Factory파일을 다음과 같이 깔끔하게 줄일 수 있다.
extern "C" INT WINAPI Factory(INT n)
개인적으로 __declspec(dllexport)가 줄었다는 것만으로도 눈이 피로해지지 않아서 좋다.
반응형
'Computer Science > 프로그래밍 TIP' 카테고리의 다른 글
Visual Studio 2010 에디터 색깔 변경 다운받기(Color Schemes) (0) | 2010.05.02 |
---|---|
안드로이드 SDK (0) | 2010.04.01 |
outlook(with office toos) 개발관련 자료들 (1) | 2010.04.01 |
안드로이드와 아웃룩간의 일정 데이터 연동을 위한 무언가가 부족하네요. (0) | 2010.04.01 |
Windows Phone 7에서 Silverlight를 이용해서 Twitter application만드는 방법 (0) | 2010.03.19 |