À©µµ¿ì ÇÁ·Î±×·¡¹Ö ÀÚ·á

HomePage Backward Forward Post Reply List
Delete Modify
  Á¦¸ñ   [MFC] DLL¸¸µé±â 1998/08/04 (11:15)
À̸§ swindler
¹øÈ£ 56
Á¶È¸ 408
º»¹® DLLÀº Dynamic Linking and EmbeddingÀ¸·Î, DLLÀ»
ÀÛ¼ºÇϸé À¢¸¸ÇÑ À©µµ¿ì¿ë ¾ð¾î¿¡¼­´Â ÀüºÎ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù´Â
Á¡ÀÌ Class Library¿Í´Â ´Ù¸¥ Á¡ÀÔ´Ï´Ù.

1. MyDLL.cpp
BOOL WINAPI DllEntlryPoint(HINSTANCE hDLL,
DWORD dwReason, LPVOID Reserved)
{
switch(dwReason)
{
case DLL_PROCESS_ATTACH:
// Dll Load½Ã¿¡ ½ÇÇàµÇ´Â ºÎºÐ
case DLL_PROCESS_DETACH:
// Dll Unload½Ã¿¡ ½ÇÇàµÇ´Â ºÎºÐ
}
return TRUE;
}
int MyBeep(void) {}
int MyDely(long wait) {}

2. MyDLL.def //ÀÚ¼¼ÇÑ°Ç API ReferenceÂü°í
LIBRARL mydll
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD SINGLE

EXPORTS //ÇÔ¼ö¸íÀ» ³Ö¾îÁÜ
MyBeep
MyDely

3. DLLÀÌ¿ëÇÏ´Â ÇÁ·Î±×·¥¿¡¼­´Â ´ÙÀ½°ú °°Àº ºÎºÐÀ»
Àü¿ªº¯¼ö·Î ¼±¾ð

HINSTANCe gLibMyDLL=NULL //Load¿©ºÎ¸¦ ÆÇ´Ü
typedef int (*MYMEEP)(void);
MYBEEP MyBeep;
typedef int (*MTDELAY)(long);
MYDELAY MyDelay;

4. DLLÀ» ·ÎµåÇÏ´Â ¹æ¹ý
gLibMyDll=LoadLibrary("MyDLL.dll");
// return value°¡ NULLÀ̸é Load½ÇÆÐ
MyBeep=(MYBEEP)GetProcAddress(gLibMyDLL,"MyBeep");
MyDelay=(MYDELAY)GetProcAddress(gLibMyDLL,"MyDelay");

ÇÔ¼öÀÇ Æ÷ÀÎÅ͸¦ À§¿Í °°ÀÌ ¾ò¾î³»°í ³­ ÈÄ¿¡´Â,
ÀÏ¹Ý ÇÔ¼öó·³ »ç¿ë°¡´ÉÇÔ. µû¶ó¼­, DLLÀ» Á¦ÀÛÇÏ°í
¹èÆ÷ÇÒ ½Ã¿¡´Â ÇÔ¼öÀÇ ¿øÇü¿¡ ´ëÇÑ ¼³¸íÀ» °°ÀÌ Ã·ºÎÇØ¾ß ÇÔ.


HomePage Backward Forward Post Reply List
1998 by swindler