不,既不GetTempPath也不GetTempFileName 返回 char值.通常,C函数不会返回字符串.相反,您传入一个字符串缓冲区和该字符串缓冲区的长度,并且该函数使用请求的字符串填充字符串缓冲区.
例如,要调用GetTempPath,您将编写以下代码:
TCHAR szTempPathBuffer[MAX_PATH];
GetTempPath(MAX_PATH, // length of the buffer
szTempPathBuffer); // the buffer to fill
Run Code Online (Sandbox Code Playgroud)
szTempPathBuffer 将包含临时目录的路径.
请注意,您可能不应该显式调用ANSI函数(带有A后缀的函数).十多年来,Windows已经完全使用Unicode了.使用Windows标头定义的宏,根据是否_UNICODE定义,自动解析为函数的正确版本,或显式调用Unicode版本(带有W后缀的版本).
由于您正在调用ANSI版本,因此您将获得ANSI字符串(由char值组成),而不是Unicode字符串(由wchar_t值组成),这可能是SaveToFile您尝试调用的方法所期望的.