[C++] 異なるバージョンの Windows に対応させるため、マイ ドキュメント フォルダーの位置 (パス) を取得する

マイ ドキュメント フォルダーの位置 (パス) は、Windows のバージョンによって違うことがあります。フォルダーの位置を文字列で指定してしまうと、別のバージョンの Windows 上で動作しない可能性があります。フォルダーの位置を取得するには、紹介する方法をご使用ください。

 
 
 
 
 
5 Star
(1)
Add to favorites
2/10/2011
E-mail Twitter del.icio.us Digg Facebook
Sign in to ask a question


  • window xpの場合に、空白は返られた
    1 Posts | Last post May 08, 2012
    • windows xpの時代で、下記通り、SHGetSpecialFolderPathを使って、マイドキュメントフォルダ―の位置を取得しています(nFolderFlagはCSIDL_PERSONALである)、
      
      SHGetSpecialFolderPath(hWnd, pOutput, nFolderFlag , TRUE);
      
      例えば、取得した値は"D:/MyDocuments"である(pOutputの値は"D:/MyDocuments")、
      
      今回window7対応のため、ご提示頂いた下記の方法で、その場で、もう一度マイドキュメントフォルダ―の位置を取得すると、空白は返られた。(pOutputの値は"")
      
      if(nFolderFlag==CSIDL_PERSONAL){
      	SHGetFolderPath(NULL, CSIDL_MYDOCUMENTS, NULL, NULL, pOutput);
      }
      
      原因はなんでしょうか?