Поделиться через


Функция PathAppendW (shlwapi.h)

Добавляет один путь к концу другого.

примечание Неправильное использование этой функции может привести к переполнению буфера. Мы рекомендуем использовать более безопасную функцию PathCchAppend или PathCchAppendEx на своем месте.
 

Синтаксис

BOOL PathAppendW(
  [in, out] LPWSTR  pszPath,
  [in]      LPCWSTR pszMore
);

Параметры

[in, out] pszPath

Тип: LPTSTR

Указатель на строку, завершающуюся значением NULL, к которой добавляется путь, указанный в pszMore. Необходимо задать размер этого буфера MAX_PATH, чтобы убедиться, что оно достаточно большое для хранения возвращаемой строки.

[in] pszMore

Тип: LPCTSTR

Указатель на строку, завершающуюся значением NULL, максимальную длину MAX_PATH, содержащую добавляемый путь.

Возвращаемое значение

Тип: BOOL

Возвращает TRUE, если выполнено успешно или FALSE в противном случае.

Замечания

Эта функция автоматически вставляет обратную косую черту между двумя строками, если она еще не присутствует.

Путь, предоставленный в pszPath не может начинаться с ".. \" или ".\" для создания относительной строки пути. При наличии эти периоды удаляются из выходной строки. Например, добавление path3 в ".. \path1\path2" приводит к выводу "\path1\path2\path3", а не ".. \path1\path2\path3".

Примеры


#include <windows.h>
#include <iostream>
#include "Shlwapi.h"

using namespace std;

int main( void )
{
	// String for path name.
	char buffer_1[MAX_PATH] = "name_1\\name_2";
	char *lpStr1;
	lpStr1 = buffer_1;

	// String of what is being added.
	char buffer_2[ ] = "name_3";
	char *lpStr2;
	lpStr2 = buffer_2;

	cout << "The original path string is    " << lpStr1 << endl;
	cout << "The part to append to end is   " << lpStr2 << endl;
	bool ret = PathAppend(lpStr1,lpStr2);
	cout << "The appended path string is    " << lpStr1 << endl;
}

OUTPUT:
--------- 
The original path string is    name_1\name_2
The part to append to end is   name_3
The appended path string is    name_1\name_2\name_3

Заметка

Заголовок shlwapi.h определяет PathAppend как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный, Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка shlwapi.h
библиотеки Shlwapi.lib
DLL Shlwapi.dll (версия 4.71 или более поздняя)