关于配置文件ini的读有关问题

关于配置文件ini的读问题
我在硬盘下的配置文件如下:
[PreviewBlock]
bPreviewBlock=0
[BFrameNum]
dwBFrameNum=0
[DownLoadPath]
chDownLoadPath=c:\DownLoad
[PictureSavePath]
chPictureSavePath=c:\Picture
[ClientRecordPath]
chClientRecordPath=c:\;

我读的时候是这样写的
CString buf="";
 GetPrivateProfileString("PreviewBlock","bPreviewBlock","",buf.GetBuffer(100),100,csFilename);

GetPrivateProfileString("BFrameNum","dwBFrameNum","",buf.GetBuffer(100),100,csFilename);
g_struLocalParam.dwBFrameNum = atoi(buf);

GetPrivateProfileString("DownLoadPath","chDownLoadPath","",buf.GetBuffer(100),100,csFilename);
strncpy(g_struLocalParam.chDownLoadPath,(LPCTSTR)buf,sizeof(g_struLocalParam.chDownLoadPath));

 GetPrivateProfileString("PictureSavePath","chPictureSavePath","",buf.GetBuffer(100),100,csFilename);
strncpy(g_struLocalParam.chPictureSavePath,(LPCTSTR)buf,sizeof(g_struLocalParam.chPictureSavePath));

GetPrivateProfileString("ClientRecordPath","chClientRecordPath","",buf.GetBuffer(100),100,csFilename);
strncpy(g_struLocalParam.chClientRecordPath,(LPCTSTR)buf,sizeof(g_struLocalParam.chClientRecordPath));

调试时发现buf根本就没有取到值,还是空的

------解决方案--------------------
换用这个函数试试看:
CString buf=""; 
GetPrivateProfileString("PreviewBlock","bPreviewBlock","",buf.GetBufferSetLength(100),100,csFilename); 

之后别忘了buf.Release();

------解决方案--------------------
你前面两个应该用 
GetPrivateProfileInt 读比较好
后面的里面还是传 char szBuf[100]比较好些,我一般这样用的,没出过问题
还有就是注意你的 csFilename 是否对了
------解决方案--------------------
MSDN上有详细的参考例子 分析一下看看

C/C++ code

#include <windows.h> 
#include <tchar.h>
#include <stdio.h> 
 
int main() 
{ 
   TCHAR   inBuf[80]; 
   HKEY   hKey1, hKey2; 
   DWORD  dwDisposition; 
   LONG   lRetCode; 
   TCHAR   szData[] = TEXT("USR:App Name\\Section1");
 
   // Create the .ini file key. 
   lRetCode = RegCreateKeyEx ( HKEY_LOCAL_MACHINE, 
       TEXT("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\"
            "IniFileMapping\\appname.ini"), 
       0, 
       NULL, 
       REG_OPTION_NON_VOLATILE, 
       KEY_WRITE, 
       NULL, 
       &hKey1, 
       &dwDisposition); 
 
   if (lRetCode != ERROR_SUCCESS)
   { 
      printf ("Error in creating appname.ini key (%d).\n", lRetCode); 
      return (0) ; 
   } 
 
   // Set a section value 
   lRetCode = RegSetValueEx ( hKey1, 
                              TEXT("Section1"), 
                              0, 
                              REG_SZ, 
                              (BYTE *)szData, 
                              sizeof(szData)); 
 
   if (lRetCode != ERROR_SUCCESS) 
   { 
      printf ("Error in setting Section1 value\n"); 
      // Close the key
      lRetCode = RegCloseKey( hKey1 );
      if( lRetCode != ERROR_SUCCESS )
      {
         printf("Error in RegCloseKey (%d).\n", lRetCode);
         return (0) ; 
      }
   } 
 
   // Create an App Name key 
   lRetCode = RegCreateKeyEx ( HKEY_CURRENT_USER, 
                               TEXT("App Name"), 
                               0, 
                               NULL, 
                               REG_OPTION_NON_VOLATILE,
                               KEY_WRITE, 
                               NULL, 
                               &hKey2, 
                               &dwDisposition); 
 
   if (lRetCode != ERROR_SUCCESS) 
   { 
      printf ("Error in creating App Name key (%d).\n", lRetCode); 

      // Close the key
      lRetCode = RegCloseKey( hKey2 );
      if( lRetCode != ERROR_SUCCESS )
      {
         printf("Error in RegCloseKey (%d).\n", lRetCode);
         return (0) ; 
      }
   } 
 
   // Force the system to read the mapping into shared memory 
   // so that future invocations of the application will see it 
   // without the user having to reboot the system 
   WritePrivateProfileStringW( NULL, NULL, NULL, L"appname.ini" ); 
 
   // Write some added values 
   WritePrivateProfileString (TEXT("Section1"), 
                              TEXT("FirstKey"), 
                              TEXT("It all worked out OK."), 
                              TEXT("appname.ini")); 
   WritePrivateProfileString (TEXT("Section1"), 
                              TEXT("SecondKey"), 
                              TEXT("By golly, it works!"), 
                              TEXT("appname.ini")); 
   WritePrivateProfileString (TEXT("Section1"), 
                              TEXT("ThirdKey"), 
                              TEXT("Another test..."), 
                              TEXT("appname.ini")); 

   // Test 
   GetPrivateProfileString (TEXT("Section1"), 
                            TEXT("FirstKey"), 
                            TEXT("Error: GPPS failed"), 
                            inBuf, 
                            80, 
                            TEXT("appname.ini")); 
   _tprintf (TEXT("Key: %s\n"), inBuf); 
 
   // Close the keys
   lRetCode = RegCloseKey( hKey1 );
   if( lRetCode != ERROR_SUCCESS )
   {
      printf("Error in RegCloseKey (%d).\n", lRetCode);
      return(0);
   }

   lRetCode = RegCloseKey( hKey2 );
   if( lRetCode != ERROR_SUCCESS )
   {
      printf("Error in RegCloseKey (%d).\n", lRetCode);
      return(0);
   }
   
   return(1); 
}