Winapi Win32函数ExpandEnvironmentStrings如何在返回值为零的情况下失败?

Winapi Win32函数ExpandEnvironmentStrings如何在返回值为零的情况下失败?,winapi,visual-c++,environment-variables,getlasterror,Winapi,Visual C++,Environment Variables,Getlasterror,这些文件的内容如下: 如果函数失败,则返回值为零。要获取扩展错误信息,请调用GetLastError 但是,我无法生成函数返回零的测试用例 DWORD WINAPI ExpandEnvironmentStrings( _In_ LPCTSTR lpSrc, _Out_opt_ LPTSTR lpDst, _In_ DWORD nSize ); 如果任何一个指针为NULL,它就会崩溃,size参数也不会产生任何错误(如果太小,函数将返回所需的大小) 那么,是

这些文件的内容如下:

如果函数失败,则返回值为零。要获取扩展错误信息,请调用
GetLastError

但是,我无法生成函数返回零的测试用例

DWORD WINAPI ExpandEnvironmentStrings(
  _In_       LPCTSTR lpSrc,
  _Out_opt_  LPTSTR lpDst,
  _In_       DWORD nSize
);
如果任何一个指针为NULL,它就会崩溃,size参数也不会产生任何错误(如果太小,函数将返回所需的大小)


那么,是否有任何已知的情况下,此函数将返回零并执行SetLastError?

这不是Windows中错误报告的工作方式,没有“异常规范”。模拟错误返回以测试代码是否具有故障恢复能力当然是微不足道的,只需强制返回值和错误即可。@HansPassant:我知道MS文档通常未指定可能的错误。我只是想知道这个函数是否会失败,也就是说,如果有人知道一个返回零的错误场景。@MartinBa任何可能的情况都会发生变化,因为它们没有记录在案。通常情况下,“出了问题”是一种恐慌,因为它无法处理存在无限可能性(并非所有可能性)的事情。