次の方法で共有


PathAppendW 関数 (shlwapi.h)

1 つのパスを別のパスの末尾に追加します。

この関数の誤用 バッファー オーバーランにつながる可能性があることに注意してください。 PathCchAppend または PathCchAppendEx 関数 、その代わりに安全な を使用することをお勧めします。
 

構文

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

パラメーター

[in, out] pszPath

型: LPTSTR

pszMore で指定されたパスが追加される、null で終わる文字列へのポインター 。 返された文字列を保持するのに十分な大きさになるように、このバッファーのサイズを MAX_PATH に設定する必要があります。

[in] pszMore

型: LPCTSTR

追加するパスを含む最大長MAX_PATHの null で終わる文字列へのポインター。

戻り値

型: BOOL

成功した場合 TRUE を返し、それ以外の場合は FALSE 返します。

備考

この関数は、2 つの文字列の間に円記号を自動的に挿入します (まだ存在しない場合)。

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 ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして PathAppend を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional、Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー shlwapi.h
ライブラリ Shlwapi.lib
DLL Shlwapi.dll (バージョン 4.71 以降)