À©µµ¿ì ÇÁ·Î±×·¡¹Ö ÀÚ·á |
---|
Á¦¸ñ | [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À» Á¦ÀÛÇÏ°í ¹èÆ÷ÇÒ ½Ã¿¡´Â ÇÔ¼öÀÇ ¿øÇü¿¡ ´ëÇÑ ¼³¸íÀ» °°ÀÌ Ã·ºÎÇØ¾ß ÇÔ. |