#include <windows.h>
#include <iostream>
#include "Shlwapi.h"
using namespace std;
int main()
{
// Path_1 destination buffer.
char buffer_1[MAX_PATH] = "JustABufferToHoldTheCanonicalizedPathForAnExample";
char *lpStr1;
lpStr1 = buffer_1;
// Path_2 to be Canonicalized.
char buffer_2[ ] = "A://name_1//.//name_2//..//name_3";
char *lpStr2;
lpStr2 = buffer_2;
// Path_3 to be Canonicalized.
char buffer_3[ ] = "A://name_1//..//name_2//.//name_3";
char *lpStr3;
lpStr3 = buffer_3;
// Path_4 to be Canonicalized.
char buffer_4[ ] = "A://name_1//name_2//.//name_3//..//name_4";
char *lpStr4;
lpStr4 = buffer_4;
// Path_5 to be Canonicalized.
char buffer_5[ ] = "A://name_1//.//name_2//.//name_3//..//name_4//..";
char *lpStr5;
lpStr5 = buffer_5;
// Path_6 to be Canonicalized.
char buffer_6[ ] = "C://..";
char *lpStr6;
lpStr6 = buffer_6;
cout << "The un-canonicalized path 2 is : " << lpStr2
<< "/nThe return value is : "
<< PathCanonicalize(lpStr1,lpStr2)
<< "/nThe canonicalized path 1 is : " << lpStr1 << endl;
cout << "/nThe un-canonicalized path 3 is : " << lpStr3
<< "/nThe return value is : "
<< PathCanonicalize(lpStr1,lpStr3)
<< "/nThe canonicalized path 1 is : " << lpStr1 << endl;
cout << "/nThe un-canonicalized path 4 is : " << lpStr4
<< "/nThe return value is : "
<< PathCanonicalize(lpStr1,lpStr4)
<< "/nThe canonicalized path 1 is : " << lpStr1 << endl;
cout << "/nThe un-canonicalized path 5 is : " << lpStr5
<< "/nThe return value is : "
<< PathCanonicalize(lpStr1,lpStr5)
<< "/nThe canonicalized path 1 is : " << lpStr1 << endl;
cout << "/nThe un-canonicalized path 6 is : " << lpStr6
<< "/nThe return value is : "
<< PathCanonicalize(lpStr1,lpStr6)
<< "/nThe canonicalized path 1 is : " << lpStr1 << endl;
}
OUTPUT:
---------
The un-canonicalized path 2 is : A:/name_1/./name_2/../name_3
The return value is : 1
The canonicalized path 1 is : A:/name_1/name_3
The un-canonicalized path 3 is : A:/name_1/../name_2/./name_3
The return value is : 1
The canonicalized path 1 is : A:/name_2/name_3
The un-canonicalized path 4 is : A:/name_1/name_2/./name_3/../name_4
The return value is : 1
The canonicalized path 1 is : A:/name_1/name_2/name_4
The un-canonicalized path 5 is : A:/name_1/./name_2/./name_3/../name_4/..
The return value is : 1
The canonicalized path 1 is : A:/name_1/name_2
The un-canonicalized path 6 is : C:/..
The return value is : 1
The canonicalized path 1 is : C:/
版本 shlwapi.dll 4.7
头文件 shlwapi.h
库 shlwapi.lib