La comparaison de deux TCHAR est avec la même valeur des résultats faux

Je suis en train de vérifier mes applications chemin, et si ce n'est pas un chemin d'accès spécifié, puis de le déplacer. Je pense que mon code est solide, mais il ne fonctionne pas correctement.

TCHAR pCheck[MAX_PATH];
TCHAR xPath[MAX_PATH];

GetModuleFileName(NULL,xPath,MAX_PATH);

if(SHGetSpecialFolderPath(HWND_DESKTOP, pCheck, CSIDL_DESKTOP, FALSE)){
    wcscat(pCheck,L"\\NewFile.exe");
    MessageBox(NULL,pCheck,NULL,NULL);
    MessageBox(NULL,xPath,NULL,NULL);
    if(pCheck!=xPath){  
        CopyFile(xPath,pCheck,0);
        ShellExecute(0,L"open",pCheck,NULL,NULL,SW_SHOW);
        return 0;
    }else{
        MessageBox(NULL,L"New Location",NULL,NULL); 
        return 0;
    }
}

Même lorsque le fichier est dans le nouveau chemin d'accès, il sera toujours pCheck != xPath

Je n'ai jamais eu le "un Nouvel Emplacement" messagebox. Lors de la première de deux messageboxs sont affichés, le chemin de l'égalité...

OriginalL'auteur Josh Line | 2012-11-10