c++ - 比较两个具有相同值的 TCHAR 结果为 false

标签 c++ compare tchar getmodulefilename

我正在尝试检查我的应用程序路径,如果它不是指定路径,则移动它。我觉得我的代码很可靠,但它不能正常工作。

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;
    }
}

即使文件位于新路径中,它仍然会导致 pCheck != xPath

我从未收到“新位置”消息框。当显示前两个消息框时,路径是相等的...

最佳答案

您只是在比较数组的地址(它们显然永远不会相同)。如果你想比较数组中保存的两个字符串,你应该使用 _tcscmp();

if(_tcscmp(pCheck, xPath) != 0){ 

关于c++ - 比较两个具有相同值的 TCHAR 结果为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13323924/

相关文章:

c++ - 需要确保构造函数/析构函数被调用一次。但是 "error: destructor is private"

c++ - QSettings 实例失败

xcode - 如何比较xcode中的分支

c++ - 无法获取和显示用户名的C++ Microsoft示例

c - 将 GetCurrentDirectory 与 wcstombs 一起使用

c++ - 构造函数中的错误控制

c++ - 是否可以在不声明其方法的情况下保留裸类定义?

powershell - 将两个哈希表连接成一个

python-2.7 - 使用 Python Pandas 进行 CSV 列比较

C++ 帮助连接 TCHAR