簡體   English   中英

如何檢查LPCTSTR變量為null或為空

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM