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

指向长度为 null 的字符串的指针,该字符串的最大长度MAX_PATH,其中包含第一个路径。 此值可以 NULL

[in] pszFile

类型:LPCTSTR

指向最大长度为 null 的字符串的指针,MAX_PATH包含第二个路径。 此值可以 NULL

返回值

类型:LPTSTR

指向缓冲区的指针,当此函数成功返回时,将接收串联的路径字符串。 这是 pszPathOut指向的同一字符串。 如果此函数未成功返回,则此值 NULL

言论

目录路径应采用 A:、B:、...、Z:的形式。 文件路径应采用正确的格式,表示路径的文件名部分。 如果目录路径以反斜杠结尾,将保留反斜杠。 请注意,虽然 lpszDirlpszFile 都是可选参数,但它们不能同时 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 Professional、Windows XP [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 shlwapi.h
Shlwapi.lib
DLL Shlwapi.dll(版本 4.71 或更高版本)