HOWTO: ¿Ã¹Ù¸¥ À§Ä¡¿¡ »ç¿ëÀÚ ¹× ÀÀ¿ë ÇÁ·Î±×·¥ µ¥ÀÌÅ͸¦ ÀúÀåÇÏ´Â Windows XP ÀÀ¿ë ÇÁ·Î±×·¥ ÀÛ¼º

±â¼ú ÀÚ·á: 310294 - ÀÌ ¹®¼­°¡ Àû¿ëµÇ´Â Á¦Ç° º¸±â.
ÀÌ ¹®¼­´Â ÀÌÀü¿¡ ´ÙÀ½ ID·Î ÃâÆÇµÇ¾úÀ½: KR310294
¸ðµÎ È®´ë | ¸ðµÎ Ãà¼Ò

ÀÌ ÆäÀÌÁö¿¡¼­

¿ä¾à

ÀÀ¿ë ÇÁ·Î±×·¥Àº µÎ Á¾·ùÀÇ ¹®¼­, Áï »ç¿ëÀÚ°¡ ¸¸µå´Â ¹®¼­¿Í ÀÀ¿ë ÇÁ·Î±×·¥ ÀÚü¿¡¼­ ¸¸µå´Â ¹®¼­·Î ÀÛµ¿ÇÕ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥Àº SHGetFolderPath ¼Ð ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© »ç¿ëÀÚ¿Í ÀÀ¿ë ÇÁ·Î±×·¥¿¡ °ü·ÃµÈ µ¥ÀÌÅ͸¦ ÀúÀåÇÒ À¯È¿ÇÑ Æú´õ À§Ä¡¸¦ °Ë»öÇØ¾ß ÇÕ´Ï´Ù. À̰ÍÀº °°Àº ÄÄÇ»Å͸¦ ¿©·¯ »ç¿ëÀÚ°¡ °øÀ¯ÇÏ´Â ±â´É°ú ºü¸¥ »ç¿ëÀÚ Àüȯ ±â´ÉÀ» Áö¿øÇØ¾ß ÇÏ´Â Windows XP ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­´Â ÇʼöÀûÀÔ´Ï´Ù.

ÀÌ ¹®¼­¿¡¼­´Â ¿Ã¹Ù¸¥ À§Ä¡¿¡ »ç¿ëÀÚ µ¥ÀÌÅ͸¦ ÀúÀåÇÏ´Â ¹æ¹ýÀ» ´ÙÀ½°ú °°Àº ´Ü°è·Î ¼³¸íÇÕ´Ï´Ù.
  • Win32 ÀÀ¿ë ÇÁ·Î±×·¥À» ¸¸µì´Ï´Ù.
  • ÆÄÀÏ ¸Þ´º¿¡ ´Ù¸¥ À̸§À¸·Î ÀúÀå ¿É¼ÇÀ» Ãß°¡ÇÕ´Ï´Ù.
  • ¿Ã¹Ù¸¥ À§Ä¡¸¦ ±âº»°ªÀ¸·Î °®´Â Ç¥ÁØ ÆÄÀÏ ÀúÀå ´ëÈ­ »óÀÚ¸¦ »ç¿ëÇÕ´Ï´Ù.
  • ¿Ã¹Ù¸¥ ÆÄÀÏ ÀúÀå À§Ä¡¸¦ È®ÀÎÇÕ´Ï´Ù.
  • »ç¿ëÀÚÀÇ ÀÌÀü ¼±Åà À§Ä¡¸¦ ÀúÀåÇÕ´Ï´Ù.
  • »ç¿ëÀÚÀÇ ÀÌÀü ¼±Åà À§Ä¡¸¦ È®ÀÎÇÕ´Ï´Ù.
¶ÇÇÑ ÀÀ¿ë ÇÁ·Î±×·¥ µ¥ÀÌÅ͸¦ ÀúÀåÇÏ´Â À§Ä¡¿Í ÀûÀýÇÑ À§Ä¡¿¡ ÀúÀåµÇ¾ú´ÂÁö È®ÀÎÇÏ´Â ¹æ¹ýµµ ´ÙÀ½°ú °°Àº ´Ü°è·Î ¼³¸íÇÕ´Ï´Ù.
  • ÀÀ¿ë ÇÁ·Î±×·¥ µ¥ÀÌÅ͸¦ ºÐ·ùÇÕ´Ï´Ù.
  • ¿Ã¹Ù¸¥ À§Ä¡¿¡ ÀÀ¿ë ÇÁ·Î±×·¥ µ¥ÀÌÅ͸¦ ÀúÀåÇÕ´Ï´Ù.
  • ·¹Áö½ºÆ®¸®¸¦ ½ÅÁßÇÏ°Ô »ç¿ëÇÕ´Ï´Ù.

¿ä±¸ »çÇ×

´ÙÀ½Àº ±ÇÀå Çϵå¿þ¾î, ¼ÒÇÁÆ®¿þ¾î, ³×Æ®¿öÅ© ÀÎÇÁ¶ó, ±â¼ú°ú Áö½Ä ¹× ¼­ºñ½º ÆÑÀÔ´Ï´Ù.
  • Windows XP Home Edition ¶Ç´Â Windows XP Professional
  • Visual Studio .NET ¶Ç´Â Visual Studio ¹öÀü 6.0
  • Win32 ÀÀ¿ë ÇÁ·Î±×·¥ °³¹ß¿¡ ´ëÇÑ »çÀü Áö½Ä

Win32 ÀÀ¿ë ÇÁ·Î±×·¥ ¸¸µé±â

Visual Studio¸¦ ½ÃÀÛÇϰí SavingData¶ó´Â À̸§ÀÇ »õ·Î¿î Win32 ÀÀ¿ë ÇÁ·Î±×·¥À» ¸¸µì´Ï´Ù.
  • Visual C++ 6.0¿¡¼­ »ç¿ë °¡´ÉÇÑ ÇÁ·ÎÁ§Æ® Çü½Ä ¸ñ·Ï¿¡¼­ Win32 ApplicationÀ» ´©¸¥ ´ÙÀ½ A typical "Hello World" application ¿É¼ÇÀ» ¼±ÅÃÇÕ´Ï´Ù.
  • Visual Studio .NETÀÇ ÇÁ·ÎÁ§Æ® Çü½Ä¿¡¼­ Visual C++ ÇÁ·ÎÁ§Æ®¸¦ ´©¸¥ ´ÙÀ½ ÅÛÇø´¿¡¼­ Win32 ÇÁ·ÎÁ§Æ®¸¦ ´©¸¨´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ ¸¶¹ý»ç¿¡ ³ªÅ¸³ª´Â ±âº» ÀÀ¿ë ÇÁ·Î±×·¥ ¼³Á¤À» ±×´ë·Î Àû¿ëÇÕ´Ï´Ù.

ÆÄÀÏ ¸Þ´º¿¡ ´Ù¸¥ À̸§À¸·Î ÀúÀå ¿É¼Ç Ãß°¡

  1. ¸®¼Ò½º ºä¸¦ ´©¸¥ ´ÙÀ½ IDC_SAVINGDATA¸¦ µÎ ¹ø ´©¸¨´Ï´Ù.
  2. ÆÄÀÏ ¸Þ´º¿¡ ´Ù¸¥ À̸§À¸·Î ÀúÀå ¸Þ´º ¿É¼ÇÀ» Ãß°¡ÇÕ´Ï´Ù. ¸Þ´º Ç׸ñÀÇ ID·Î IDM_FILE_SAVEAS¸¦ »ç¿ëÇÕ´Ï´Ù.
  3. SavingData.cppm ³»¿¡¼­ ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ WndProc â ÇÁ·Î½ÃÀú¸¦ ã°í WM_COMMAND ¼½¼Ç ³»¿¡ ´Ù¸¥ À̸§À¸·Î ÀúÀå ¸Þ´º ¿É¼ÇÀ» ó¸®ÇÏ´Â »õ·Î¿î case ¹®À» Ãß°¡ÇÕ´Ï´Ù. ´ÙÀ½ Àý¿¡¼­ ¸¸µå´Â OnFileSaveAs ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù. ÀÌ ÇÔ¼ö´Â ¸Å°³ º¯¼ö¸¦ »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù.

    ÄÚµå´Â ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³ª¾ß ÇÕ´Ï´Ù.
    case WM_COMMAND:
       wmId    = LOWORD(wParam); 
       wmEvent = HIWORD(wParam); 
       // Parse the menu selections.
       switch (wmId)
       {
       case IDM_ABOUT:
          DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
          break;
       case IDM_EXIT:
          DestroyWindow(hWnd);
          break;
       case IDM_FILE_SAVEAS:
          OnFileSaveAs();
          break;
       default:
          return DefWindowProc(hWnd, message, wParam, lParam);
       }
       break;

¿Ã¹Ù¸¥ À§Ä¡¸¦ ±âº»°ªÀ¸·Î °®´Â Ç¥ÁØ ÆÄÀÏ ÀúÀå ´ëÈ­ »óÀÚ »ç¿ë

»ç¿ëÀÚ°¡ ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ÆÄÀÏ ÀúÀå(¶Ç´Â ÆÄÀÏ ¿­±â) ´ëÈ­ »óÀÚ¸¦ óÀ½À¸·Î Ç¥½ÃÇÏ¸é ´ëÈ­ »óÀÚ´Â »ç¿ëÀÚÀÇ ³» ¹®¼­ Æú´õ(¶Ç´Â À̹ÌÁö µ¥ÀÌÅÍÀÇ °æ¿ì My Pictures ¹× ¿Àµð¿À ÆÄÀÏÀÇ °æ¿ì My Music Æú´õ)°¡ ±âº»°ªÀÌ µÇ¾î¾ß ÇÕ´Ï´Ù.

Âü°í: ½ÇÁ¦ À§Ä¡¸¦ È®½ÅÇÒ ¼ö ¾øÀ¸¹Ç·Î ÀÀ¿ë ÇÁ·Î±×·¥ ³»¿¡ °æ·Î¸¦ Çϵå ÄÚµùÇØ¼­´Â ¾ÈµË´Ï´Ù. ¿¹¸¦ µé¾î, °ü¸®ÀÚ°¡ ³» ¹®¼­ Æú´õ¸¦ ³×Æ®¿öÅ©»óÀ¸·Î À§Ä¡ º¯°æÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
  1. SavingData.cpp ¸Ç À§¿¡ ´ÙÀ½ Æ÷ÇÔ ¹®À» Ãß°¡ÇÕ´Ï´Ù.
    #include <commdlg.h>   // for GetSaveFileName
    #include <shlobj.h>    // for SHGetFolderPath
  2. OnFileSaveAs ÇÔ¼ö¿¡ ´ëÇØ ´ÙÀ½ ÇÁ·ÎÅäŸÀÔÀ» Ãß°¡ÇÕ´Ï´Ù.
    void OnFileSaveAs();
  3. »õ·Î¿î OnFileSaveAs ÇÔ¼ö¸¦ ¸¸µì´Ï´Ù. ÀÌ ÇÔ¼ö ³»¿¡¼­ CSIDL_MYPICTURESCSIDL ½Äº°ÀÚ¿Í ÇÔ²² SHGetFolderPath ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ±×¸² µ¥ÀÌÅ͸¦ ÀúÀåÇÒ ¿Ã¹Ù¸¥ Æú´õ À§Ä¡¸¦ °Ë»öÇÕ´Ï´Ù. ÀÌ Æú´õ À§Ä¡¸¦ GetSaveFileName ÇÔ¼ö¿¡ Àü´ÞÇÏ¿© Ç¥ÁØ ÆÄÀÏ ÀúÀå ´ëÈ­ »óÀÚ¸¦ Ç¥½ÃÇÕ´Ï´Ù.

    ÄÚµå´Â ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³ª¾ß ÇÕ´Ï´Ù.
    void OnFileSaveAs()
    {
       OPENFILENAME openFile;
       TCHAR szPath[MAX_PATH];
    
    // Initialize OPENFILENAME structure.
    ZeroMemory( &openFile, sizeof(OPENFILENAME) );
    openFile.lStructSize = sizeof(OPENFILENAME);
    // Default to My Pictures. First, get its path.
    if ( SUCCEEDED( SHGetFolderPath( NULL, CSIDL_MYPICTURES, 
                                          NULL, 0, szPath ) ) )
    {
       // Set lpstrInitialDir to the path that SHGetFolderPath obtains. 
       // This causes GetSaveFileName to point to the My Pictures folder.
          openFile.lpstrInitialDir = szPath;
    }
    // Display the standard File Save dialog box, defaulting to My Pictures.
    if ( GetSaveFileName( &openFile ) == TRUE )
    {
          // User clicks the Save button.
       // Save the file
    }
    else
    {
       // User cancels the File Save dialog box.
    }
    }

¿Ã¹Ù¸¥ ÆÄÀÏ ÀúÀå À§Ä¡ È®ÀÎ

  1. F5 ۸¦ ´­·¯ ÇÁ·ÎÁ§Æ®¸¦ ºôµåÇÕ´Ï´Ù.
  2. ÀÀ¿ë ÇÁ·Î±×·¥À» ½ÇÇàÇÏ°í ÆÄÀÏ ¸Þ´º¿¡¼­ ´Ù¸¥ À̸§À¸·Î ÀúÀåÀ» ´©¸¨´Ï´Ù.
  3. Ç¥ÁØ ÆÄÀÏ ÀúÀå ´ëÈ­ »óÀÚÀÇ ±âº» À§Ä¡´Â CSIDL_MYPICTURESÀÌ ÀúÀåÇÑ My Pictures Æú´õÀÔ´Ï´Ù.
  4. Ãë¼Ò¸¦ ´­·¯ ´ëÈ­ »óÀÚ¸¦ ´Ý°í ÀÀ¿ë ÇÁ·Î±×·¥À» ´Ý½À´Ï´Ù.

»ç¿ëÀÚÀÇ ÀÌÀü ¼±Åà À§Ä¡ ÀúÀå

ÆÄÀÏ ÀúÀå(¶Ç´Â ÆÄÀÏ ¿­±â) ´ëÈ­ »óÀÚ¸¦ °è¼Ó »ç¿ëÇÏ´Â °æ¿ì ´ëÈ­ »óÀÚ´Â »ç¿ëÀÚ°¡ ÀÌÀü¿¡ ¼±ÅÃÇÑ À§Ä¡¸¦ ±âº»ÀûÀ¸·Î Ç¥½ÃÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù.

OPENFILENAME ±¸Á¶ ³»¿¡ ÃÊ±â Æú´õ À§Ä¡¸¦ Á¦°øÇÏÁö ¾ÊÀº °æ¿ì GetSaveFileName(¹× GetOpenFileName)Àº ³» ¹®¼­ Æú´õ¸¦ °¡¸®Å°´Â Ç¥ÁØ ÆÄÀÏ ÀúÀå ¶Ç´Â ÆÄÀÏ ¿­±â ´ëÈ­ »óÀÚ¸¦ Ç¥½ÃÇÕ´Ï´Ù. »Ó¸¸ ¾Æ´Ï¶ó, »ç¿ëÀÚ°¡ ÀÌÀü¿¡ ÆÄÀÏ ÀúÀå ¶Ç´Â ÆÄÀÏ ¿­±â ´ëÈ­ »óÀÚ¸¦ »ç¿ëÇÒ ¶§ ±âº»°ªÀÌ ¾Æ´Ñ Æú´õ¸¦ ¼±ÅÃÇÑ °æ¿ì ÇÔ¼ö´Â ÀÌÀü¿¡ »ç¿ëÇÑ Æú´õ¸¦ ÀÚµ¿À¸·Î Ç¥½ÃÇÕ´Ï´Ù.

»ç¿ëÀÚ°¡ óÀ½ ÆÄÀÏÀ» ¿­°Å³ª ÀúÀåÇÒ ¶§´Â My Pictures¿Í °°ÀÌ ±âº» Æú´õ À§Ä¡¸¦ Ç¥½ÃÇÏ°Ô Çϰí, ÀÌÀü¿¡ ÆÄÀÏÀ» ¿­°í ÀúÀåÇÑ ÀûÀÌ ÀÖÀ¸¸é ÇØ´ç À§Ä¡¸¦ ±â¾ïÇÏ¿© Ç¥½ÃÇϵµ·Ï ÇÏ·Á¸é ºÎ¿ï º¯¼ö¸¦ »ç¿ëÇÏ¿© ÆÄÀÏ ÀúÀåÀ̳ª ÆÄÀÏ ¿­±â ÀÛ¾÷ÀÌ Ã³À½ ¼öÇàµÇ´Â °ÍÀÎÁö ¿©ºÎ¸¦ ÃßÀûÇØ¾ß ÇÕ´Ï´Ù.
  1. OnFileSaveAs ÇÔ¼ö¿¡ bFirstSave¶ó´Â À̸§ÀÇ static BOOL º¯¼ö¸¦ ¸¸µé°í TRUE·Î ÃʱâÈ­ÇÕ´Ï´Ù.
  2. bFirstSave°¡ TRUEÀÎ °æ¿ì¿¡¸¸ SHGetFolderPath¸¦ È£ÃâÇϰí OPENFILENAME ±¸Á¶ÀÇ lpstrInitialDir ¸â¹ö¸¦ ¼³Á¤Çϵµ·Ï OnFileSaveAs ³»ÀÇ Äڵ带 ¼öÁ¤ÇÕ´Ï´Ù .
  3. »ç¿ëÀÚ°¡ ÆÄÀÏ ÀúÀå ´ëÈ­ »óÀÚ¿¡¼­ ÀúÀåÀ» ´©¸£¸é bFirstSave¸¦ FALSE·Î ¼³Á¤ÇÕ´Ï´Ù.

    ÄÚµå´Â ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³ª¾ß ÇÕ´Ï´Ù.
    void OnFileSaveAs()
    {
       OPENFILENAME openFile;
       TCHAR szPath[MAX_PATH];
       static BOOL bFirstSave = TRUE;
    
    // Initialize OPENFILENAME structure.
    ZeroMemory( &openFile, sizeof(OPENFILENAME) );
    openFile.lStructSize = sizeof(OPENFILENAME);
    // The first time the user saves a document, default to My Pictures.
       if ( TRUE == bFirstSave )
    {
       if ( SUCCEEDED( SHGetFolderPath( NULL, CSIDL_MYPICTURES, 
                                             NULL, 0, szPath ) ) )
       {
             // Set lpstrInitialDir to the path that SHGetFolderPath obtains.
             // This causes GetSaveFileName to point to the My Pictures folder.
             openFile.lpstrInitialDir = szPath;
       }
    }
    // Display standard File Save dialog box, defaulting to My Pictures
    // or the user's previously selected location.
    if ( GetSaveFileName( &openFile ) == TRUE )
    {
       // User clicks Save.
       // Save the file.
          bFirstSave = FALSE;
    }
    else
    {
          // User cancels the File Save dialog box.
    }
    }

»ç¿ëÀÚÀÇ ÀÌÀü ¼±Åà À§Ä¡ È®ÀÎ

  1. ÇÁ·ÎÁ§Æ®¸¦ ºôµåÇϰí ÀÀ¿ë ÇÁ·Î±×·¥À» ½ÇÇàÇÕ´Ï´Ù.
  2. ÆÄÀÏ ¸Þ´º¿¡¼­ ´Ù¸¥ À̸§À¸·Î ÀúÀåÀ» ´©¸¨´Ï´Ù.
  3. My Pictures Æú´õ¿¡¼­ ³» ¹®¼­ Æú´õ·Î À̵¿ÇÏ°í ÆÄÀÏÀ» ¼±ÅÃÇÑ ´ÙÀ½ ÀúÀåÀ» ´©¸¨´Ï´Ù.
  4. ÆÄÀÏ ¸Þ´º¿¡¼­ ´Ù¸¥ À̸§À¸·Î ÀúÀåÀ» ´Ù½Ã ´©¸¨´Ï´Ù.
  5. ´ëÈ­ »óÀÚÀÇ ±âº» À§Ä¡°¡ ÀÌÀü¿¡ ¼±ÅÃÇÑ À§Ä¡(ÀÌ °æ¿ì ³» ¹®¼­ Æú´õ)ÀÎÁö È®ÀÎÇÕ´Ï´Ù.
  6. Ãë¼Ò¸¦ ´­·¯ ´ëÈ­ »óÀÚ¸¦ ´Ý°í ÀÀ¿ë ÇÁ·Î±×·¥À» ´Ý½À´Ï´Ù.
  7. ÀÀ¿ë ÇÁ·Î±×·¥À» ½ÇÇàÇÏ°í ÆÄÀÏ ¸Þ´º¿¡¼­ ´Ù¸¥ À̸§À¸·Î ÀúÀåÀ» ´©¸¨´Ï´Ù.
  8. ´ëÈ­ »óÀÚÀÇ ±âº» À§Ä¡°¡ ´Ù½Ã My Pictures Æú´õ°¡ µÇ¾ú´ÂÁö È®ÀÎÇÕ´Ï´Ù.
  9. ´ëÈ­ »óÀÚ¸¦ ´Ý°í ÀÀ¿ë ÇÁ·Î±×·¥À» Á¾·áÇÕ´Ï´Ù.

ÀÀ¿ë ÇÁ·Î±×·¥ µ¥ÀÌÅÍ ºÐ·ù

ÀÀ¿ë ÇÁ·Î±×·¥ °ü·Ã µ¥ÀÌÅÍ(Àӽà ÆÄÀÏ, »ç¿ëÀÚ ±âº» ¼³Á¤, ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ÆÄÀÏ µî)´Â ³» ¹®¼­ Æú´õ¿¡ ÀúÀåÇØ¼­´Â ¾ÈµË´Ï´Ù. ´ë½Å Windows ·¹Áö½ºÆ®¸®(64KB¸¦ ÃʰúÇÏÁö ¾Ê´Â µ¥ÀÌÅÍÀÇ °æ¿ì)ÀÇ ÀûÀýÇÑ À§Ä¡³ª À¯È¿ÇÑ Application Data Æú´õ¿¡ ÀÀ¿ë ÇÁ·Î±×·¥ °ü·Ã ÆÄÀÏÀ» »ç¿ëÇϽʽÿÀ.

¿©·¯ »ç¶÷ÀÌ ¼­·ÎÀÇ µ¥ÀÌÅÍ¿Í ¼³Á¤À» ¼Õ»ó½ÃŰ°Å³ª µ¤¾î¾²Áö ¾Ê°í °°Àº ÄÄÇ»Å͸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ¿Ã¹Ù¸¥ À§Ä¡¿¡ ÀÀ¿ë ÇÁ·Î±×·¥ µ¥ÀÌÅ͸¦ ÀúÀåÇÏ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù.

ÀÀ¿ë ÇÁ·Î±×·¥ µ¥ÀÌÅÍ¿¡ °¡Àå ÀûÇÕÇÑ À§Ä¡¸¦ È®ÀÎÇÏ·Á¸é ´ÙÀ½ ¹üÁÖ¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅ͸¦ ºÐ·ùÇÕ´Ï´Ù.
  • °³º° »ç¿ëÀÚ(·Î¹Ö): ÀÌ ¹üÁִ ƯÁ¤ »ç¿ëÀÚ¿Í °ü·ÃµÈ ÀÀ¿ë ÇÁ·Î±×·¥ µ¥ÀÌÅ͸¦ ¸»ÇÏ¸ç »ç¿ëÀÚ°¡ µµ¸ÞÀÎ ³»ÀÇ ¾î¶² ÄÄÇ»Å͸¦ »ç¿ëÇϵçÁö µ¥ÀÌÅ͸¦ »ç¿ëÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù(¿¹: »ç¿ëÀÚ ÁöÁ¤ »çÀü). ÀÌ ¼³Á¤Àº µµ¸ÞÀΠȯ°æ¿¡¼­ ½ÇÇàÇϵµ·Ï µðÀÚÀεÇÁö ¾ÊÀº ÀÀ¿ë ÇÁ·Î±×·¥¿¡´Â Àû¿ëµÇÁö ¾Ê½À´Ï´Ù.
  • °³º° »ç¿ëÀÚ(ºñ ·Î¹Ö): ÀÌ ¹üÁִ ƯÁ¤ »ç¿ëÀÚ¿Í °ü·ÃµÈ ÀÀ¿ë ÇÁ·Î±×·¥ µ¥ÀÌÅ͸¦ ¸»ÇÏÁö¸¸ ´ÜÀÏ ÄÄÇ»ÅÍ¿¡¼­¸¸ µ¥ÀÌÅ͸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù(¿¹: »ç¿ëÀÚ ÁöÁ¤ ¸ð´ÏÅÍ ÇØ»óµµ).
  • °³º° ÄÄÇ»ÅÍ(ºñ ·Î¹Ö, ºñ »ç¿ëÀÚ °ü·Ã): ÀÌ ¹üÁִ ƯÁ¤ ÄÄÇ»ÅÍÀÇ ¸ðµç »ç¿ëÀÚ¿¡°Ô Àû¿ëµÇ´Â ÀÀ¿ë ÇÁ·Î±×·¥ µ¥ÀÌÅ͸¦ ¸»ÇÕ´Ï´Ù(¿¹: ÀÀ¿ë ÇÁ·Î±×·¥ »çÀü, ·Î±× ÆÄÀÏ ¶Ç´Â Àӽà ÆÄÀÏ).

ÀÀ¿ë ÇÁ·Î±×·¥ µ¥ÀÌÅ͸¦ ¿Ã¹Ù¸¥ À§Ä¡¿¡ ÀúÀå

SHGetFolderPath ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ¿Ã¹Ù¸¥ Application Data Æú´õ¸¦ °Ë»öÇÕ´Ï´Ù. ÀÌ Æú´õ¿¡ Á÷Á¢ ÀÀ¿ë ÇÁ·Î±×·¥ µ¥ÀÌÅ͸¦ ÀúÀåÇÏÁö ¸¶½Ê½Ã¿À. ´ë½Å PathAppend ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© SHGetFolderPath°¡ ¹ÝȯÇÏ´Â °æ·Î¿¡ ÇÏÀ§ Æú´õ¸¦ Ãß°¡ÇϽʽÿÀ. ¹Ýµå½Ã ´ÙÀ½ Çü½ÄÀ» »ç¿ëÇϽʽÿÀ.
Company Name\Product Name\Product Version
¿¹¸¦ µé¾î, Àüü °æ·Î¿¡ ´ëÇÑ °á°ú´Â ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³¯ ¼ö ÀÖ½À´Ï´Ù.
\Documents and Settings\All Users\Application Data\My Company\My Product\1.0
¿Ã¹Ù¸¥ Application Data Æú´õ¸¦ ãÀ¸·Á¸é ÀÀ¿ë ÇÁ·Î±×·¥ µ¥ÀÌÅÍÀÇ ¹üÁÖ¿¡ ±â¹ÝÇÏ¿© ÀûÀýÇÑ CSIDL °ªÀ» Àü´ÞÇÕ´Ï´Ù.
  • °³º° »ç¿ëÀÚ(·Î¹Ö) µ¥ÀÌÅÍÀÇ °æ¿ì CSIDL_APPDATA °ªÀ» »ç¿ëÇÕ´Ï´Ù. ±âº»°ªÀº ´ÙÀ½ °æ·ÎÀÔ´Ï´Ù.
    \Documents and Settings\< User Name >\Application Data
  • °³º° »ç¿ëÀÚ(ºñ ·Î¹Ö) µ¥ÀÌÅÍÀÇ °æ¿ì CSIDL_LOCAL_APPDATA °ªÀ» »ç¿ëÇÕ´Ï´Ù. ±âº»°ªÀº ´ÙÀ½ °æ·ÎÀÔ´Ï´Ù.
    \Documents and Settings\< User Name >\Local Settings\Application Data
  • °³º° ÄÄÇ»ÅÍ(ºñ ·Î¹Ö, ºñ »ç¿ëÀÚ °ü·Ã) µ¥ÀÌÅÍÀÇ °æ¿ì CSIDL_COMMON_APPDATA °ªÀ» »ç¿ëÇÕ´Ï´Ù. ±âº»°ªÀº ´ÙÀ½ °æ·ÎÀÔ´Ï´Ù.
    \Documents and Settings\All Users\Application Data
´ÙÀ½ ÄÚµå´Â CSIDL_COMMON_APPDATA ¾Æ·¡¿¡ ÀÖ´Â Àӽà ·Î±× ÆÄÀÏÀ» ¿©´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù.
void CreateTemporaryFile()
{
   TCHAR szPath[MAX_PATH];
   // Get path for each computer, non-user specific and non-roaming data.
   if ( SUCCEEDED( SHGetFolderPath( NULL, CSIDL_COMMON_APPDATA, 
                                    NULL, 0, szPath ) ) )
   {
      TCHAR szTempFileName[MAX_PATH];
      // Append product-specific path.
      PathAppend( szPath, "\\My Company\\My Product\\1.0\\" );
      // Generate a temporary file name within this folder.
      if (GetTempFileName( szPath, 
                           "PRE",
                           0,
                           szTempFileName ) != 0 )
      {
         HANDLE hFile = NULL;
         // Open the file.
         if (( hFile = CreateFile( szTempFileName, 
                                     GENERIC_WRITE, 
                                     0, 
                                   NULL, 
                                   CREATE_ALWAYS, 
                                   FILE_ATTRIBUTE_NORMAL, 
                                   NULL )) != INVALID_HANDLE_VALUE )
         {
            // Write temporary data (code omitted).
            CloseHandle( hFile );
         }
      }
   }
}

½ÅÁßÇÑ ·¹Áö½ºÆ®¸® »ç¿ë ¹æ¹ý

°æ°í: ·¹Áö½ºÆ®¸® ÆíÁý±â¸¦ À߸ø »ç¿ëÇÏ¸é ½É°¢ÇÑ ¹®Á¦°¡ ¹ß»ýÇÒ ¼ö ÀÖÀ¸¸ç ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ ¿î¿µ üÁ¦¸¦ ´Ù½Ã ¼³Ä¡ÇØ¾ß ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. Microsoft´Â ·¹Áö½ºÆ®¸® ÆíÁý±â¸¦ À߸ø »ç¿ëÇÏ¿© ¹ß»ýÇÏ´Â ¹®Á¦¿¡ ´ëÇÑ ÇØ°áÀ» º¸ÁõÇÏÁö ¾Ê½À´Ï´Ù. ·¹Áö½ºÆ®¸® ÆíÁý±âÀÇ »ç¿ë¿¡ µû¸¥ ¸ðµç Ã¥ÀÓÀº »ç¿ëÀÚ¿¡°Ô ÀÖ½À´Ï´Ù.

·¹Áö½ºÆ®¸®¸¦ ÆíÁýÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ·¹Áö½ºÆ®¸® ÆíÁý±â(Regedit.exe)ÀÇ "Ű ¹× °ª º¯°æ" µµ¿ò¸» Ç׸ñ ¶Ç´Â Regedt32.exeÀÇ "·¹Áö½ºÆ®¸®ÀÇ Á¤º¸ Ãß°¡ ¹× »èÁ¦" ¹× "·¹Áö½ºÆ®¸® µ¥ÀÌÅÍ ÆíÁý" µµ¿ò¸» Ç׸ñÀ» ÂüÁ¶ÇϽʽÿÀ. ·¹Áö½ºÆ®¸®¸¦ ÆíÁýÇϱâ Àü¿¡ ¸ÕÀú ¹é¾÷ÇØ¾ß ÇÕ´Ï´Ù. ¶ÇÇÑ Windows NT ¶Ç´Â Windows 2000À» ½ÇÇàÇÏ´Â °æ¿ì ERD(ÀÀ±Þ º¹±¸ µð½ºÅ©)¸¦ ¾÷µ¥ÀÌÆ®ÇØ¾ß ÇÕ´Ï´Ù.

¶ÇÇÑ ·¹Áö½ºÆ®¸®¸¦ »ç¿ëÇÏ¿© Å©±â°¡ ÀÛÀº ÀÀ¿ë ÇÁ·Î±×·¥ µ¥ÀÌÅ͸¦ ÀúÀåÇÒ ¼ö ÀÖ½À´Ï´Ù. 64KB¸¦ ÃʰúÇÏ´Â µ¥ÀÌÅÍÀÇ °æ¿ì Application Data Æú´õ¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ·¹Áö½ºÆ®¸®¸¦ »ç¿ëÇÏ¿© ÀÀ¿ë ÇÁ·Î±×·¥ µ¥ÀÌÅ͸¦ ÀúÀåÇÒ ¶§ ´ÙÀ½ °¡À̵带 ÁؼöÇϽʽÿÀ.
  • Å©±â°¡ ÀÛÀº »ç¿ëÀÚ µ¥ÀÌÅÍÀÇ °æ¿ì HKEY_CURRENT_USER(HKCU) ·¹Áö½ºÆ®¸® ۸¦ »ç¿ëÇϽʽÿÀ.
  • Å©±â°¡ ÀÛÀº ÄÄÇ»ÅÍ µ¥ÀÌÅÍÀÎ °æ¿ì HKEY_LOCAL_MACHINE(HKLM) ·¹Áö½ºÆ®¸® ۸¦ »ç¿ëÇϽʽÿÀ. ±âº»ÀûÀ¸·Î °ü¸®ÀÚ°¡ ¾Æ´Ñ »ç¿ëÀÚ´Â HKLM Æ®¸®¿¡ Àбâ Àü¿ë ¾×¼¼½º ±ÇÇѸ¸ °®°í ÀÖÀ¸¹Ç·Î ·±Å¸ÀÓ¿¡ ÀÀ¿ë ÇÁ·Î±×·¥Àº HKLM¿¡ ±â·ÏÇÒ ¼ö ¾ø½À´Ï´Ù.
  • ¼³Ä¡ÇÒ ¶§ ÀÀ¿ë ÇÁ·Î±×·¥Àº HKCU¿Í HKLM¿¡ ÃÑ 128KB ÀÌ»ó ÀúÀåÇØ¼­´Â ¾ÈµË´Ï´Ù.
  • ±¸¼º ¿ä¼Ò °³Ã¼ ¸ðµ¨(COM) ±¸¼º ¿ä¼Ò´Â HKEY_CLASSES_ROOT(HKCR) ·¹Áö½ºÆ®¸® Ű ¾Æ·¡ µî·ÏµË´Ï´Ù. ÃÖ´ë 128KB¿¡´Â HKCRÀÌ Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù.
  • HKLM ¶Ç´Â HKCU¿¡ ±â·ÏÇÒ ¶§ ´ÙÀ½°ú °°ÀÌ È¸»ç À̸§, Á¦Ç° À̸§ ¹× Á¦Ç° ¹öÀü ¹øÈ£¿¡ ´ëÇÑ Å°¸¦ ¸¸µé¾î¾ß ÇÕ´Ï´Ù.
    HKLM\Software\Company Name\Product Name\Product Version
    HKCU\Software\Company Name\Product Name\Product Version
  • ·¹Áö½ºÆ®¸® ÇÔ¼ö(RegCreateKeyEx, RegSetValueEx µî)¸¦ »ç¿ëÇÏ¿© ·¹Áö½ºÆ®¸® Ç׸ñÀ» ÀÐ°í ¾¹´Ï´Ù.

¹®Á¦ ÇØ°á

  • ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ Windows XP¿Í ±× ÀÌÀü ¹öÀüÀÇ Windows¿¡¼­ ½ÇÇàµÇµµ·Ï ÇÏ·Á¸é Ç×»ó Shfolder.dll¿¡ ÀÖ´Â SHGetFolderPath ±¸Çö¿¡ ¿¬°áÇØ¾ß ÇÕ´Ï´Ù. Windows XP´Â Shell32.dll¿¡ SHGetFolderPath¸¦ Æ÷ÇÔÇϰí ÀÖÁö¸¸ ÀÌÀü ¹öÀü Windows´Â ÀÌ µ¿Àû ¿¬°á ¶óÀ̺귯¸®(DLL) ³»¿¡¼­ ÇÔ¼ö¸¦ Áö¿øÇÏÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù.
  • Shfolder.dllÀº ÀçºÐ¹è °¡´ÉÇÑ ±¸¼º ¿ä¼ÒÀ̸ç ÀÀ¿ë ÇÁ·Î±×·¥°ú ÇÔ²² ¹èÆ÷ÇÒ ¼ö ÀÖ½À´Ï´Ù.
  • ³» ¹®¼­ Æú´õ³ª ´Ù¸¥ ½Ã½ºÅÛ Æú´õ¿¡ ´ëÇÑ Á¤½Ä °æ·Î¸¦ ÃÖ±Ù »ç¿ëÇÑ ÆÄÀÏ ¸ñ·Ï°ú °°Àº ÀÀ¿ë ÇÁ·Î±×·¥ °ü·Ã À§Ä¡¿¡ ÀúÀåÇÏÁö ¸¶½Ê½Ã¿À. »ç¿ëÀÚ³ª °ü¸®ÀÚ°¡ ÇØ´ç ÀÀ¿ë ÇÁ·Î±×·¥À» ¿¬¼ÓÀûÀ¸·Î »ç¿ëÇϸ鼭 ÀÌµé Æú´õÀÇ À§Ä¡¸¦ º¯°æÇÒ ¼öµµ Àֱ⠶§¹®ÀÔ´Ï´Ù.

ÂüÁ¶

SHGetFolderPath°¡ ½Äº°ÇÒ ¼ö ÀÖ´Â Æú´õÀÇ ÁýÇÕ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ´ÙÀ½ Microsoft Platform SDK(¼ÒÇÁÆ®¿þ¾î °³¹ß ŰƮ) ¼³¸í¼­¸¦ ÂüÁ¶ÇϽʽÿÀ.
CSIDL °ª
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/Shell/Functions/csidl.asp
¼Ð ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº MSDN À¥ »çÀÌÆ®¸¦ ÂüÁ¶ÇϽʽÿÀ.
¼Ð ÇÁ·Î±×·¡¸Ó °¡À̵å
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/Shell/shell_intro.asp
Visual C++ .NET¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ´ÙÀ½ Usenet ´º½º ±×·ìÀ» ÂüÁ¶ÇϽʽÿÀ.
Microsoft.public.dotnet.languages.vc
´ÙÀ½ Visual C++ .NET Áö¿ø ¼¾Å͸¦ ¹æ¹®ÇϽʽÿÀ.
Visual C++ .NET(2002) Áö¿ø ¼¾ÅÍ

¼Ó¼º

±â¼ú ÀÚ·á: 310294 - ¸¶Áö¸· °ËÅä: 2002³â 4¿ù 17ÀÏ ¼ö¿äÀÏ - ¼öÁ¤: 1.1
º» ¹®¼­ÀÇ Á¤º¸´Â ´ÙÀ½ÀÇ Á¦Ç°¿¡ Àû¿ëµË´Ï´Ù.
  • Microsoft Visual C++ .NET 2002 Standard Edition?À»(¸¦) ´ÙÀ½°ú ÇÔ²² »ç¿ëÇßÀ» ¶§
    • Microsoft Windows XP Professional
Ű¿öµå:?
kbhowtomaster kbnewsgrouplink KB310294

Çǵå¹é º¸³»±â