ÀÚ¿ø ¾÷µ¥ÀÌÆ®

´ÙÀ½ ¿¹Á¦¿¡¼­´Â ÇϳªÀÇ ½ÇÇà ÆÄÀÏÀ» ¼Õ¿¡¼­ ´ëÈ­ »óÀÚ ¸®¼Ò½º¸¦ º¹»ç ÇÕ´Ï´Ù.EXE, ´Ù¸¥ ¹ßÀÔ´Ï´Ù.´ÙÀ½ÀÌ ´Ü°è¸¦ ¼öÇà ÇÏ ¿© EXE:

  1. »ç¿ë µÈ ¼ÕÀ» ½ÇÇà ÆÄÀÏÀ» ·Îµå ÇÏ·Á¸é LoadLibrary ÇÔ¼ö.EXE.
  2. FindResource ¹× LoadResource ÇÔ¼ö¸¦ ã¾Æ ´ëÈ­ »óÀÚ ¸®¼Ò½º ·Îµå¸¦ »ç¿ë ÇÏ ¿©.
  3. LockResource ÇÔ¼ö¸¦ »ç¿ë ÇÏ ¿© ´ëÈ­ »óÀÚ ¸®¼Ò½º µ¥ÀÌÅÍ¿¡ ´ë ÇÑ Æ÷ÀÎÅ͸¦ °Ë»ö ÇÕ´Ï´Ù.
  4. BeginUpdateResource ÇÔ¼ö¸¦ »ç¿ë ÇÏ ¿© ¹ßÀ» ¾÷µ¥ÀÌÆ® ÇÚµéÀ» ¿­ ¼ö ÀÖ½À´Ï´Ù.EXE.
  5. UpdateResource ÇÔ¼ö¸¦ »ç¿ë ÇÏ ¿© ¼Õ¿¡¼­ ´ëÈ­ »óÀÚ ¸®¼Ò½º¸¦ º¹»ç ÇÕ´Ï´Ù.EXE¸¦ ¹ßÀÔ´Ï´Ù.EXE.
  6. EndUpdateResource ÇÔ¼ö¸¦ »ç¿ë ÇÏ ¿© ¾÷µ¥ÀÌÆ®¸¦ ¿Ï·á ÇÏ·Á¸é.

´ÙÀ½ ÄÚµå´Â ÀÌ·¯ÇÑ ´Ü°è¸¦ ±¸Çö.

HRSRC hResLoad;     / / ·Îµå µÈ ¸®¼Ò½º ÇÚµé hExe;¿¡ ´ë ÇÑ ÇÚµé        / / ±âÁ¸ ó¸® ÇÕ´Ï´Ù.EXE ÆÄÀÏ HRSRC hRes;         / / ÇÚµé/ptr. res. Á¤º¸. hExe ó¸® hUpdateRes;  / / ¾÷µ¥ÀÌÆ® ¸®¼Ò½º ÇÚµé char * lpResLock;    / / Æ÷ÀÎÅÍ ¸®¼Ò½º µ¥ÀÌÅÍ BOOL °á°ú; 
 
/ / ·Îµå ÇÕ´Ï´Ù.º¹»ç ´ëÈ­ »óÀÚ¸¦ Æ÷ÇÔ ÇÏ´Â EXE ÆÄÀÏ. 
hExe = LoadLibrary("hand.exe"); 
 
°æ¿ì (hExe = = NULL) {ErrorHandler ("·ÎµåÇÒ ¼ö ¾ø½À´Ï´Ù exe."); 
} / / ´ëÈ­ »óÀÚ ¸®¼Ò½º¿¡¼­ ãÀ» ÇÕ´Ï´Ù.EXE ÆÄÀÏÀÔ´Ï´Ù. 
hRes FindResource (hExe, "AboutBox", RT_DIALOG); = 
 
°æ¿ì (hRes = = NULL) {ErrorHandler ("ãÀ» ¼ö ¾ø½À´Ï´Ù ´ëÈ­ »óÀÚ."); 
} / / ±Û·Î¹ú ¸Þ¸ð¸®¿¡ ´ëÈ­ »óÀÚ¸¦ ·Îµå ÇÕ´Ï´Ù. 
hResLoad = LoadResource (hExe, hRes); 
 
°æ¿ì (hResLoad = = NULL) {ErrorHandler ("·ÎµåÇÒ ¼ö ¾ø½À´Ï´Ù ´ëÈ­ »óÀÚ."); 
} / / ±Û·Î¹ú ¸Þ¸ð¸®¿¡ ´ëÈ­ »óÀÚ¸¦ Àá±Ý. 
lpResLock = LockResource(hRes); 
 
°æ¿ì (lpResLock = = NULL) {ErrorHandler ("¼ö ¾ø´Â Àá±Ý ´ëÈ­ »óÀÚ."); 
} / / ´ëÈ­ »óÀÚ ¸®¼Ò½º¸¦ Ãß°¡ÇÒ ÆÄÀÏÀ» ¿±´Ï´Ù. 
hUpdateRes = BeginUpdateResource ("foot.exe", FALSE); 
 
°æ¿ì (hUpdateRes = = NULL) {ErrorHandler ("¿­ ¼ö ¾ø½À´Ï´Ù ¾²±â ÆÄÀÏ."); 
} / / ¾÷µ¥ÀÌÆ® ¸ñ·Ï¿¡ ´ëÈ­ »óÀÚ ¸®¼Ò½º¸¦ Ãß°¡ ÇÕ´Ï´Ù. 
°á°ú = UpdateResource (hUpdateRes, / ¾÷µ¥ÀÌÆ® ¸®¼Ò½º ó¸® RT_DIALOG, / / / º¯°æ ´ëÈ­ »óÀÚ ¸®¼Ò½º "AboutBox" / / ´ëÈ­ »óÀÚ À̸§ MAKELANGID (LANG_NEUTRAL, SUBLANG_NEUTRAL) / / Á߸³ ¾ð¾î
     lpResLock, / / ptr ¸®¼Ò½º Á¤º¸ SizeofResource (hExe, hRes)); / / ÀÚ¿ø Á¤º¸ÀÇ Å©±â. 
 
¸¸¾à (°á°ú = FALSE) {ErrorHandler ("Ãß°¡ ÇÏÁö ¸øÇß½À´Ï´Ù ¸®¼Ò½º."); 
} / / ¹ß¿¡ º¯°æ ³»¿ëÀ» ±â·Ï ÇÕ´Ï´Ù.EXE ÇÑ ´ÙÀ½ ´Ý½À´Ï´Ù. 
if (!.EndUpdateResource (hUpdateRes, FALSE)) {ErrorHandler ("¾µ ¼ö ¾ø½À´Ï´Ù ÆÄÀÏÀ» º¯°æ ÇÕ´Ï´Ù."); 
} / / Á¤¸® ÇÕ´Ï´Ù. 
if (!.FreeLibrary(hExe)) {ErrorHandler ("¼ö ¾ø´Â ¹«·á ½ÇÇà."); 
} 
 

 

Index