2010-07-01 42 views
-1

是否有任何可靠的API来获取C++ Windows中的Windows文件夹? 我正在使用以下方法,但失败了。是否有任何可靠的API来获取Windows中的Windows文件夹?

BOOL CQUserInfoHelper::GetWindowsPath(CString& strWindowsPath) 
    { 
     TCHAR windowsPathTemp[MAX_PATH]; 
     int nSize = MAX_PATH; 
     ::GetWindowsDirectory(
      windowsPathTemp, 
      nSize); 
     strWindowsPath = windowsPathTemp; 
     return TRUE; 
    } 
+0

“失败” 是不是一个错误的描述,我喜欢阅读。 – Timbo 2010-07-01 08:33:55

+0

它不返回XX:\\ Windows,但其他东西。它是由我的用户报告,我不能在他们的电脑上调试 – sxingfeng 2010-07-01 08:36:58

+1

有2个来自以下的回声: 如果长度大于缓冲区的大小,返回值是缓冲区所需的缓冲区的大小路径。 如果函数失败,返回值为零。要获得扩展的错误信息,请调用GetLastError。 处理这些问题 – Arseny 2010-07-01 08:40:29

回答

4

试一试 -

const DWORD dwBufferLength = 65537; 
CStringW strBuffer; 

if (!::GetCurrentDirectory( dwBufferLength , 
           strBuffer.GetBuffer(dwBufferLength)) ) 
    return L""; 

...

strBuffer.ReleaseBuffer(); 
相关问题