[英]How to check a LPCTSTR variable is null or empty
以下代碼無效。 在這里,我想檢查lpClassName是null還是空。
static HRESULT WINAPI ExampleMethod(
__in_opt LPCTSTR lpClassName)
{
//code to check whether lpClassName is null or empty
if( lpClassName == 0)
return 0;
if(*lpClassName) == L'\0')
return 0;
}
我使用較短的形式:
if (lpClassName == NULL || lpClassName[0] == 0)
如果您需要的只是測試空,則無需獲取字符串的整個長度。 如果指針為空,短路規則將阻止語句的后半部分引起錯誤。
除此之外,我希望您的問題中的代碼也能正常工作。
編輯:在這種情況下,指針似乎來自CreateWindowEx,這意味着它可能不是實際的字符串指針而是ATOM值。 區分的方法是檢查高位是否全為零。 Microsoft對資源ID使用相同的約定,並提供IS_INTRESOURCE
宏來測試此條件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.