PathCombineA 函数 (shlwapi.h)
将表示正确格式路径的两个字符串连接成一个路径;还连接任何相对路径元素。
注意 滥用此函数可能会导致缓冲区溢出。 建议使用更安全的 PathCchCombine 或 PathCchCombineEx 函数。
语法
LPSTR PathCombineA(
[out] LPSTR pszDest,
[in, optional] LPCSTR pszDir,
[in] LPCSTR pszFile
);
参数
[out] pszDest
类型: LPTSTR
指向缓冲区的指针,当此函数成功返回时,该缓冲区接收组合的路径字符串。 必须将此缓冲区的大小设置为MAX_PATH,以确保其大小足以容纳返回的字符串。
[in, optional] pszDir
类型: LPCTSTR
指向包含第一个路径的最大长度MAX_PATH以 null 结尾的字符串的指针。 此值可以为 NULL。
[in] pszFile
类型: LPCTSTR
指向包含第二个路径的最大长度MAX_PATH以 null 结尾的字符串的指针。 此值可以为 NULL。
返回值
类型: LPTSTR
指向缓冲区的指针,当此函数成功返回时,该缓冲区接收串联的路径字符串。 这是 pszPathOut 指向的同一字符串。 如果此函数未成功返回,则此值为 NULL。
注解
目录路径的格式应为 A:、B:、...、Z:。 文件路径的格式应正确,表示路径的文件名部分。 如果目录路径以反斜杠结尾,则将保留反斜杠。 请注意,虽然 lpszDir 和 lpszFile 都是可选参数,但它们不能都为 NULL。
示例
#include <windows.h>
#include <iostream.h>
#include "Shlwapi.h"
void main( void )
{
// Buffer to hold combined path.
char buffer_1[MAX_PATH] = "";
char *lpStr1;
lpStr1 = buffer_1;
// String for balance of path name.
char buffer_2[ ] = "One\\Two\\Three";
char *lpStr2;
lpStr2 = buffer_2;
// String for directory name.
char buffer_3[ ] = "C:";
char *lpStr3;
lpStr3 = buffer_3;
cout << "The file path to be combined is "
<< lpStr2 << endl;
cout << "The directory name path is "
<< lpStr3 << endl;
cout << "The combined path is "
<< PathCombine(lpStr1,lpStr3,lpStr2) << endl;
}
------------
INPUT:
------------
Path for directory part: "C:"
Path for file part: "One\Two\Three"
------------
OUTPUT:
------------
The file path to be combined is One\Two\Three
The directory name path is C:
The combined path is C:\One\Two\Three
注意
shlwapi.h 标头将 PathCombine 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 专业版、Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | shlwapi.h |
Library | Shlwapi.lib |
DLL | Shlwapi.dll (版本 4.71 或更高版本) |