C++ 比较TCHAR数组与空字符的最佳实践
我正在检查注册表路径并提取值,但当找不到注册表路径时,我必须检查其他位置C++ 比较TCHAR数组与空字符的最佳实践,c++,windows,registry,C++,Windows,Registry,我正在检查注册表路径并提取值,但当找不到注册表路径时,我必须检查其他位置 TCHAR Answer[MAX_PATH] = { L'\0' }; DWORD RegResult = SHRegGetPath(HKEY_LOCAL_MACHINE, TEXT("Software\\Wow6432Node\key1"), key, Answer, NULL); 如果key1存在,则返回ERROR_SUCCESS,但是如果key1存在但没有给定值,则我想检查其他键 因此,我正在考虑将szAns
TCHAR Answer[MAX_PATH] = { L'\0' };
DWORD RegResult = SHRegGetPath(HKEY_LOCAL_MACHINE, TEXT("Software\\Wow6432Node\key1"), key, Answer, NULL);
如果key1存在,则返回ERROR_SUCCESS,但是如果key1存在但没有给定值,则我想检查其他键
因此,我正在考虑将szAnswer与“\0”进行比较,然后继续
与“\0”相比,最佳做法是什么
if (!(_tcsicmp(Answer,TEXT("\0"))))
{
std::cout << "empty string" << std::endl;
}
if(!(\u tcsicmp(答案,文本(“\0”))
{
标准::不能使用任何一种
if (!(_tcsicmp(Answer,TEXT("\0"))))
{
std::cout << "empty string" << std::endl;
}
使用
if (!_tcslen(szAnswer))
您是如何读取值的?读取函数本身的返回代码应该有帮助,而不是对值进行比较。您最好测试长度为零的字符串:if(!\u tcslen(szAnswer))…
@wander3r返回码只会在找到钥匙并且钥匙具有存储在Szanswer中的价值的情况下获得成功。TCHAR的内容在世纪之交就已经过时了。你可能想要一本21世纪的教科书。
if (!_tcslen(szAnswer))