Làm th? nào đ? vi?t m?t ?ng d?ng XP c?a s? lưu tr? d? li?u ngư?i s? d?ng và ?ng d?ng trong v? trí chính xác b?ng cách s? d?ng Visual C ++

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 310294 - Xem s?n ph?m mà bài này áp d?ng vào.
Quan tr?ng Bài vi?t này ch?a thông tin v? làm th? nào đ? s?a đ?i s? ki?m nh?p. Đ?m b?o r?ng b?n sao lưu s? ki?m nh?p trư?c khi b?n s?a đ?i nó. H?y ch?c ch?n r?ng b?n bi?t làm th? nào đ? khôi ph?c s? ki?m nh?p n?u m?t v?n đ? x?y ra. Đ? bi?t thêm chi ti?t v? làm th? nào đ? sao lưu, khôi ph?c và s?a đ?i s? ki?m nh?p, nh?p vào s? bài vi?t sau đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
322756 Làm th? nào đ? sao lưu và khôi phục s? ki?m nh?p trong Windows
Lưu ? Microsoft Visual C++ .NET 2002, Microsoft Visual C++ Studio.net 2003, Microsoft Visual C++ 2005 và Microsoft Visual C++ 2008 h? tr? c? hai mô h?nh m? đư?c qu?n l? đư?c cung c?p b?i Microsoft Khuôn kh? .NET và các mô h?nh m? ngu?n g?c không đư?c qu?n l? Microsoft Windows. Thông tin trong bài vi?t này ch? áp d?ng cho không đư?c qu?n l? Visual C ++ m?
Bung t?t c? | Thu g?n t?t c?

? Trang này

Tóm t?t

?ng d?ng làm vi?c v?i hai lo?i tài li?u: nh?ng ngư?i mà ngư?i dùng t?o và nh?ng ngư?i mà t?o ra các ?ng d?ng. ?ng d?ng c?a b?n nên s? d?ng các ch?c năng bao SHGetFolderPath đ? l?y c?p h?p l? đ?a đi?m đ? lưu tr? d? li?u đó là c? th? cho ngư?i dùng và các ?ng d?ng. Đây là đi?u c?n thi?t cho Windows ?ng d?ng XP h? tr? nhi?u ngư?i dùng đang s? d?ng cùng m?t máy tính và đ? cho phép ngư?i dùng chuy?n đ?i nhanh chóng.

Bài vi?t này mô t? làm th? nào đ? lưu tr? d? li?u ngư?i dùng trong v? trí chính xác trong các bư?c sau:
  • T?o m?t ?ng d?ng Win32.
  • Thêm m?t Lưu như tùy ch?n cho cácT?p tin tr?nh đơn.
  • S? d?ng các tiêu chu?n T?p tin ti?t ki?m hộp thoại đ? m?c đ?nh v? trí chính xác.
  • Ki?m tra các t?p tin chính xác lưu v? trí.
  • H?y nh? r?ng l?a ch?n trư?c đó c?a ngư?i dùng.
  • Xác minh l?a ch?n trư?c đó c?a ngư?i dùng.
Trong các bư?c sau, bài vi?t này c?ng mô t? nơi b?n ph?i lưu tr? d? li?u ?ng d?ng và làm th? nào đ? đ?m b?o r?ng nó đư?c lưu tr? trong các v? trí thích h?p:
  • Phân lo?i d? li?u ?ng d?ng.
  • Lưu tr? d? li?u ?ng d?ng ? v? trí chính xác.
  • S? d?ng registry khôn ngoan.

Yêu c?u

Danh sách sau đây tóm t?t các ph?n c?ng đư?c đ? ngh?, ph?n m?m, m?ng lư?i cơ s? h? t?ng, k? năng, ki?n th?c, và b?n ghi d?ch v? gói mà b?n c?n:
  • Windows XP Home Edition ho?c Windows XP Chuyên nghi?p
  • Visual Studio 2008, tr?c quan Sudio năm 2005 ho?c Visual Studio net.
  • Ki?n th?c trư?c khi phát tri?n ?ng d?ng Win32

T?o m?t ?ng d?ng Win32

B?t đ?u Visual Studio và t?o ra m?t ?ng d?ng Win32 M?i đ?t tên SavingData.
  • Trong Visual Studio .NET, h?y nh?p vào Visual C ++ D? án theo Các lo?i d? án, và sau đó nh?p vàoWin32 d? án theo M?u. Ch?p nh?n các cài đ?t chuyên bi?t ?ng d?ng m?c đ?nh các ?ng d?ng thi?t l?p thu?t s? Hi?n th?.
  • Trong Visual Studio 2005 hay 2008, h?y nh?p vào Visual C ++theo Các lo?i d? án, và sau đó nh?p vào Win32 D? án theo M?u. Ch?p nh?n m?c đ?nh cài đ?t chuyên bi?t ?ng d?ng.

Thêm m?t lưu như các tùy ch?n Menu t?p tin

  1. B?m chu?t Xem tài nguyên, và sau đó b?m đúp IDC_SAVINGDATA.
  2. Thêm m?t Lưu như tùy ch?n tr?nh đơn đ? cácT?p tin tr?nh đơn. S? d?ng IDM_FILE_SAVEAS như ID c?a m?c tr?nh đơn.
  3. Xác đ?nh v? trí c?a ?ng d?ng WndProc c?a s? th? t?c trong SavingData.cppm và thêm m?t tuyên b? trư?ng h?p m?i trong ph?n WM_COMMAND đ? x? l? các Lưu như tr?nh đơn tùy ch?n. Cu?c g?i Các OnFileSaveAs ch?c năng, mà b?n s? t?o ra trong ph?n ti?p theo. Đi?u này ch?c năng m?t không tham bi?n.

    M? c?a b?n s? xu?t hi?n như sau:
    case WM_COMMAND:
        wmId    = LOWORD(wParam);
        wmEvent = HIWORD(wParam);
        // Parse the menu selections:
        switch (wmId)
        {
        case IDM_ABOUT:
            DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
            break;
        case IDM_EXIT:
            DestroyWindow(hWnd);
            break;
        case IDM_FILE_SAVEAS:
            OnFileSaveAs(hWnd);
            break;
        default:
            return DefWindowProc(hWnd, message, wParam, lParam);
        }
        break;
    

S? d?ng tiêu chu?n t?p tin lưu hộp thoại đ? m?c đ?nh v? trí chính xác

Khi m?t ngư?i s? d?ng s? hi?n th? m?t ?ng d?ng T?p tin ti?t ki?m(ho?c M? t?p tin) hộp thoại cho l?n đ?u tiên, các h?p ph?i m?c đ?nh m?c tin thư thoại My Documents c?a ngư?i dùng (ho?c h?u du? c?a tôi Tài li?u, ch?ng h?n như các h?nh ?nh c?a tôi cho d? li?u h?nh ?nh và Âm nh?c c?a tôi cho âm thanh các t?p tin).

Lưu ?: b?n không bao gi? h?t ph?i m? m?t con đư?ng trong ?ng d?ng c?a b?n b?i v? b?n không bao gi? có th? đ?m b?o v? trí v?t l? c?a nó. Ví d?, ngư?i qu?n tr? có th? di chuy?n C?p Tài li?u c?a tôi đ?n m?t v? trí m?ng.
  1. ? trên đ?u c?a s? SavingData.cpp tr?nh đơn, thêm bao g?m sau đây báo cáo:
    #include <commdlg.h>   // for GetSaveFileName
    #include <shlobj.h>    // for SHGetFolderPath
    					
  2. Thêm m?u sau đây cho các ch?c năng OnFileSaveAs :
    void OnFileSaveAs( HWND hWnd );
    					
  3. T?o ra các ch?c năng OnFileSaveAs m?i. Trong ch?c năng này, dùng ch?c năng SHGetFolderPath k?t h?p v?i các đ?nh danh CSIDLCSIDL_MYPICTURES đ? l?y v? trí m?c tin thư thoại chính xác đ? lưu tr? d? li?u h?nh ?nh. Vư?t qua v? trí m?c tin thư thoại này v?i các ch?c năng GetSaveFileName đ? hi?n th? các tiêu chu?n T?p tin ti?t ki?mhộp thoại.

    M? c?a b?n s? xu?t hi?n như sau:
    void OnFileSaveAs(HWND hWnd)
    {
       OPENFILENAME openFile;
       TCHAR szPath[MAX_PATH];
       TCHAR szFile[MAX_PATH];
    
        // Initialize OPENFILENAME structure.
        ZeroMemory( &openFile, sizeof(OPENFILENAME) );
        openFile.lStructSize = sizeof(OPENFILENAME);
    
        szFile[0] = '\0';
        openFile.hwndOwner = hWnd;
        openFile.lpstrFile = szFile;
        openFile.nMaxFile = sizeof(szFile)/sizeof(*szFile);
    
        // 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.
        }
    }
    

Ki?m ch?ng l?i t?p chính xác lưu v? trí

  1. B?m phím F5 đ? xây d?ng các d? án.
  2. Ch?y các ?ng d?ng, và nh?p vào Lưu nhưt? các T?p tin tr?nh đơn.
  3. Xác minh r?ng các tiêu chu?n T?p tin ti?t ki?m hộp thoại h?p m?c đ?nh vào m?c tin thư thoại ?nh c?a tôi, v? CSIDL_MYPICTURES ch? đ?nh.
  4. B?m chu?t H?y b? đ? đóng hộp thoại, và đóng ?ng d?ng.

H?y nh? r?ng l?a ch?n trư?c đó c?a ngư?i dùng

Sau đó s? d?ng các T?p tin ti?t ki?m (ho?c M? t?p tin) hộp thoại, đó khuy?n cáo r?ng hộp thoại m?c đ?nh c?a ngư?i dùng đ? ch?n v? trí.

N?u b?n không cung c?p v? trí m?c tin thư thoại đ?u tiên trong cơ c?u OPENFILENAME , GetSaveFileName (và GetOpenFileName) s? hi?n th? các tiêu chu?n T?p tin ti?t ki?m ho?c T?p tin M? hộp thoại, mà đi?m đ?n m?c tin thư thoại My Documents. Ngoài ra N?u ngư?i dùng đ? s? d?ng m?t trong các h?p trư?c đây và đ? ch?n m?t m?c tin thư thoại không m?c đ?nh, các ch?c năng t? đ?ng m?c đ?nh cho các trư?c đó s? d?ng m?c tin thư thoại.

Đ? h? tr? th?c hành t?t nh?t đư?c gi?i thi?u nh?m m?c tiêu m?t v? trí m?c tin thư thoại c? th? (ch?ng h?n như h?nh ?nh c?a tôi) l?n đ?u tiên m?t ngư?i s? d?ng ti?t ki?m ho?c t?i m?t t?p tin, và sau đó m?c đ?nh c?a ngư?i dùng trư?c đó đ? ch?n v? trí, b?n nên s? d?ng m?t bi?n Boolean đ? theo d?i cho dù đây là l?n đ?u tiên th?i gian ngư?i dùng đ? th?c hi?n lưu ho?c m? các ho?t đ?ng.
  1. T?o ra m?t bi?n t?nh BOOL tên là bFirstSave trong các ch?c năng OnFileSaveAs , và kh?i t?o nó thành TRUE.
  2. Thay đ?i m? trong OnFileSaveAs đ? g?i SHGetFolderPath và thi?t l?p các thành viên lpstrInitialDir c?a c?u trúc OPENFILENAME , ch? n?u bFirstSaveđúng s? th?t.
  3. N?u ngư?i dùng B?m chu?t Ti?t ki?m trong cácT?p tin ti?t ki?m hộp thoại, thi?t l?p bFirstSave đ?SAI.

    M? c?a b?n s? xu?t hi?n như sau:
    void OnFileSaveAs(HWND hWnd)
    {
        OPENFILENAME openFile;
        TCHAR szPath[MAX_PATH];
        TCHAR szFile[MAX_PATH];
        static BOOL bFirstSave = TRUE;
    
        // Initialize OPENFILENAME structure.
        ZeroMemory( &openFile, sizeof(OPENFILENAME) );
        openFile.lStructSize = sizeof(OPENFILENAME);
    
        szFile[0] = '\0';
        openFile.hwndOwner = hWnd;
        openFile.lpstrFile = szFile;
        openFile.nMaxFile = sizeof(szFile)/sizeof(*szFile);
    
        // 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.
        }
    }
    

Xác minh l?a ch?n trư?c đó c?a ngư?i dùng

  1. Xây d?ng d? án, b?t lên và ch?y các ?ng d?ng.
  2. T? các T?p tin tr?nh đơn, nh?p vào Ti?t ki?m Như.
  3. Tr?nh duy?t t? c?p ?nh c?a tôi vào các Tài li?u c?a tôi m?c tin thư thoại, ch?n m?t t?p tin và nh?p vào Ti?t ki?m.
  4. T? các T?p tin tr?nh đơn, nh?p vào Ti?t ki?m Như m?t l?n n?a.
  5. Xác minh r?ng hộp thoại m?c đ?nh trư?c đây c?a b?n l?a ch?n (trong trư?ng h?p này, tài li?u c?a tôi).
  6. B?m chu?t H?y b? đ? b? qua hộp thoại, và đóng ?ng d?ng.
  7. Ch?y các ?ng d?ng, và nh?p vào Lưu nhưt? các T?p tin tr?nh đơn.
  8. Xác minh r?ng hộp thoại m?c đ?nh quay l?i h?nh ?nh c?a tôi m?c tin thư thoại.
  9. Đóng hộp thoại và thoát kh?i ?ng d?ng.

Phân lo?i d? li?u ?ng d?ng

B?n không nên lưu tr? d? li?u-?ng d?ng (ch?ng h?n như t?m th?i t?p tin, s? thích ngư?i dùng, t?p tin c?u h?nh ?ng d?ng và vv) trong các c?a tôi C?p tài li?u. Thay vào đó, s? d?ng m?t trong hai v? trí thích h?p trong các c?a s? ki?m nh?p (đ?i v?i các d? li?u không vư?t quá 64 kB) ho?c m?t dành riêng cho ?ng d?ng t?p tin n?m trong m?t d? li?u ?ng d?ng h?p l? m?c tin thư thoại.

Nó là quan tr?ng đ? lưu tr? d? li?u ứng dụng chính xác v? trí đ? cho phép m?t s? ngư?i s? d?ng cùng m?t máy tính mà không corrupting ho?c ghi đè d? li?u c?a nhau và cài đ?t chuyên bi?t.

Đ? xác đ?nh nh?ng thích h?p cho d? li?u ?ng d?ng c?a b?n, s? d?ng các danh m?c sau đây đ? phân lo?i d? li?u c?a b?n:
  • Cho m?i ngư?i dùng (chuy?n): th? lo?i này mô t? d? li?u ?ng d?ng c? th? cho m?t ngư?i dùng c? th? và nên có s?n cho ngư?i dùng khi h? di chuy?n gi?a Các máy tính trong m?t tên mi?n (ví d?, là m?t t? đi?n tùy ch?nh). Lưu ? r?ng đi?u này thi?t l?p không áp d?ng cho các ?ng d?ng không đư?c thi?t k? đ? ch?y trong m?t tên mi?n môi trư?ng.
  • Cho m?i ngư?i dùng (không chuy?n): th? lo?i này mô t? d? li?u ?ng d?ng c? th? cho m?t ngư?i dùng c? th? nhưng ch? áp d?ng cho m?t máy tính duy nh?t (ví d?, m?t xác đ?nh ngư?i s? d?ng màn h?nh gi?i quy?t).
  • Cho m?i máy tính (không ph?i là ngư?i dùng c? th? và không chuy?n vùng): th? lo?i này mô t? d? li?u ?ng d?ng áp d?ng cho t?t c? ngư?i dùng và máy tính c? th? (ví d?, m?t t? đi?n ?ng d?ng, m?t kí nh?p t?p tin, ho?c m?t t?p tin t?m th?i).

Lưu tr? d? li?u ?ng d?ng ? v? trí chính xác

B?n s? d?ng các ch?c năng SHGetFolderPath đ? l?y các m?c tin thư thoại d? li?u ứng dụng chính xác. Không lưu tr? d? li?u ?ng d?ng tr?c ti?p trong m?c tin thư thoại này. Thay vào đó, s? d?ng các ch?c năng PathAppend đ? thêm m?t m?c tin thư thoại con đ? con đư?ng SHGetFolderPath tr? v?. H?y ch?c ch?n r?ng b?n s? d?ng công ư?c sau:
Công ty Name\Product Name\Product Phiên b?n
Ví d?, đư?ng d?n đ?y đ? k?t qu? có th? xu?t hi?n như sau:
\Documents và Settings\All Users\Application Data\My Company\My Product\1.0
Xác đ?nh v? trí m?c tin thư thoại ?ng d?ng d? li?u chính xác, vư?t qua các giá tr? CSIDL thích h?p, d?a trên các lo?i d? li?u ?ng d?ng c?a b?n.
  • Cho m?i ngư?i dùng d? li?u (di đ?ng), s? d?ng giá tr? CSIDL_APPDATA . Đi?u này m?c đ?nh đư?ng d?n sau đây:
    \Documents và Settings\s? d?ng tên> \Application d? li?u
  • Cho m?i ngư?i dùng d? li?u (không chuy?n vùng), s? d?ng giá tr? CSIDL_LOCAL_APPDATA . Đi?u này m?c đ?nh đư?ng d?n sau đây:
    \Documents và Settings\s? d?ng tên> \Local Settings\Application d? li?u
  • Cho m?i d? li?u máy tính (không ph?i là ngư?i dùng c? th? và không chuy?n vùng), s? d?ng giá tr? CSIDL_COMMON_APPDATA . Đi?u này m?c đ?nh đư?ng d?n sau đây:
    \Documents và Settings\All Users\Application d? li?u
Đo?n m? sau đây ch?ng minh làm th? nào đ? m? m?t kí nh?p t?p t?m th?i, mà n?m bên dư?i CSIDL_COMMON_APPDATA:
include <shlwapi.h>
#pragma comment(lib,"shlwapi.lib")
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 - this path needs to already exist
      // for GetTempFileName to succeed.
      PathAppend( szPath, _T("\\My Company\\My Product\\1.0\\") );
      // Generate a temporary file name within this folder.
      if (GetTempFileName( szPath, 
                           _T("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 );
         }
      }
      else
          DWORD err = GetLastError();
   }
}

S? d?ng Registry khôn ngoan

Quan tr?ng Ph?n, phương pháp, ho?c công vi?c có bư?c mà cho b?n bi?t làm th? nào đ? s?a đ?i s? ki?m nh?p. Tuy nhiên, v?n đ? nghiêm tr?ng có th? x?y ra n?u b?n s?a đ?i registry không chính xác. V? v?y, h?y ch?c ch?n r?ng b?n làm theo các bư?c sau m?t cách c?n th?n. Đ? b?o v? b? sung, sao lưu s? ki?m nh?p trư?c khi b?n s?a đ?i nó. Sau đó, b?n có th? khôi ph?c s? ki?m nh?p n?u m?t v?n đ? x?y ra. Đ? bi?t thêm chi ti?t v? làm th? nào đ? sao lưu và khôi phục s? ki?m nh?p, nh?p vào s? bài vi?t sau đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
322756 Làm th? nào đ? sao lưu và khôi phục s? ki?m nh?p trong Windows

B?n c?ng có th? s? d?ng s? ki?m nh?p đ? lưu tr? nh? s? lư?ng d? li?u ?ng d?ng. D? li?u vư?t quá 64 kilobyte (KB), b?n ph?i s? d?ng m?t m?c tin thư thoại Application Data. Quan sát các hư?ng d?n sau khi b?n s? d?ng ki?m nh?p đ? lưu tr? d? li?u ?ng d?ng:
  • Đ?i v?i m?t lư?ng nh? d? li?u ngư?i dùng, s? d?ng các khóa registry HKEY_CURRENT_USER (HKCU).
  • Đ?i v?i m?t lư?ng nh? d? li?u máy tính, s? d?ng các khóa registry HKEY_LOCAL_MACHINE (HKLM). ?ng d?ng c?a b?n s? không ph?i vi?t thư cho HKLM t?i th?i gian ch?y b?i v?, theo m?c đ?nh, không ph?i là ngư?i qu?n tr? ngư?i dùng ch? có quy?n truy c?p ch? đ?c vào cây HKLM .
  • T?i th?i đi?m cài đ?t chuyên bi?t, ?ng d?ng c?a b?n không ph?i lưu tr? nhi?u hơn n?a so v?i t?ng s? 128 KB trên HKCUHKLM.
  • Thành ph?n đ?i tư?ng mô h?nh (COM) thành ph?n đư?c ki?m nh?p bên dư?i khoá ki?m nh?p HKEY_CLASSES_ROOT (HKCR). T?i đa c?a 128 KB không bao g?m các HKCR.
  • Khi b?n vi?t thư cho HKLM ho?c HKCU, b?n ph?i t?o phím cho tên công ty, tên s?n ph?m, và s?n ph?m s? phiên b?n, như sau:
    Phiên b?n Name\Product HKLM\Software\Company Name\Product
    Phiên b?n Name\Product HKCU\Software\Company Name\Product
  • S? d?ng các ch?c năng cơ quan ki?m nh?p (ví d? như RegCreateKeyExRegSetValueEx) đ? đ?c và vi?t m?c ki?m nh?p.

Kh?c ph?c s? c?

  • Đ? giúp đ?m b?o r?ng các ?ng d?ng ch?y trên các phiên b?n trư?c c?a Các c?a s? bên c?nh Windows XP, luôn luôn liên k?t đ? th?c hi?n SHGetFolderPath ? Shfolder.dll. M?c dù Windows XP bao g?m SHGetFolderPath trong Shell32.dll, các phiên b?n trư?c c?a Windows có th? không h? tr? các ch?c năng trong này thư vi?n liên k?t đ?ng (DLL).
  • Shfolder.dll là m?t thành ph?n redistributable và có th? phân ph?i v?i các ?ng d?ng c?a b?n.
  • Không lưu tr? đư?ng d?n đ? đi?u ki?n đ? các Tài li?u c?a tôi m?c tin thư thoại (ho?c các m?c tin thư thoại h? th?ng khác) trong m?t ?ng d?ng c? th? đ?t như m?t danh sách t?p tin c?a h?u h?t m?i s? d?ng t?p tin v? ngư?i dùng ho?c ngư?i qu?n tr? có th? di chuy?n các m?c tin thư thoại gi?a các ?ng d?ng ti?p theo c?a ?ng d?ng c?a b?n.

Tham kh?o

Cho khác hàng đ?u đ?t Visual C++ net Microsoft Knowledge Base Bài vi?t, thăm Trung tâm h? tr? Visual C++ net t?i Microsoft sau đây Trang web:
Trung tâm h? tr? Visual C ++ net (2002)
http://support.Microsoft.com/default.aspx?xmlid=FH%3BEN-US%3Bvcnet
Đ? bi?t thêm chi ti?t v? b? hoàn ch?nh các SHGetFolderPath có th? xác đ?nh các m?c tin thư thoại, h?y xem ph?n m?m n?n t?ng sau đây c?a Microsoft ««Phát tri?n Kit (SDK) tài li?u:
CSIDL
http://MSDN.Microsoft.com/en-US/Library/bb762494.aspx
Đ? bi?t thêm chi ti?t v? v? l?p tr?nh nói chung, h?y xem các web site Microsoft Developer Network (MSDN) sau đây:
V? l?p tr?nh hư?ng d?n
http://msdn2.Microsoft.com/en-US/Library/bb776778.aspx

Thu?c tính

ID c?a bài: 310294 - L?n xem xét sau cùng: 20 Tháng Bảy 2013 - Xem xét l?i: 3.0
Áp d?ng
  • Microsoft Visual C++ 2008 Express Edition
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition
T? khóa: 
kbhowtomaster kbnewsgrouplink kbmt KB310294 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài viết này được d?ch b?ng phần mềm dịch thu?t của Microsoft và có thể được Cộng đồng Microsoft chỉnh sửa l?i thông qua công nghệ CTF thay vì một biên dịch viên chuyên nghiệp. Microsoft cung c?p các bài vi?t đư?c c? biên d?ch viên và ph?n m?m d?ch thu?t th?c hi?n và c?ng đ?ng ch?nh s?a l?i đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng nhi?u ngôn ng? Tuy nhiên, bài vi?t do máy d?ch hoặc thậm chí cộng đồng chỉnh sửa sau không ph?i lúc nào c?ng hoàn h?o. Các bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này: 310294

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com