如何检查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' ')
return 0;
}
我使用一个较短的形式:
if (lpClassName == NULL || lpClassName[0] == 0)
如果只需要测试是否为空,就不需要获取字符串的整个长度。如果指针为null,短路规则将防止语句的后半部分导致错误。
除此之外,我希望您问题中的代码也能起作用。
编辑:在这种情况下,指针似乎来自CreateWindowEx,这意味着它可能不是实际的字符串指针,而是ATOM值。判断差异的方法是检查高位是否全部为零。Microsoft对资源ID使用相同的约定,并提供IS_INTRESOURCE
宏来测试这种情况。
相关文章:
- 如何返回值为NULL的变量指针
- C++,检查当我无法使用 NULL/0 时是否初始化了变量
- C++无法在对话框 CFormView 中显示 ActiveX 控件,则控件变量为 NULL
- 变量可以通过C / C 的左或右移动操作变为null
- 一旦对象设置为 null,用于声明对象的堆大小的变量就设置为 null?
- 在PVS Studio中的BOOST_REQIRE之后,将变量标记为非NULL
- 当源代码证明调试变量为NULL时,调试变量如何为NULL
- 初始化数组中的每个变量以'0'与将它们全部初始化为 null 相同吗?
- 为什么单例在这里工作,尽管静态变量被重新初始化为 NULL
- C++ Direct2D ID2D1HwndRenderTarget 的父 IUnknown 类的_vfptr变量变为 null
- 私有成员变量在从构造函数传递到成员函数时为 null
- 如果我无法访问字符串变量,如何检查 NULL(空/0) 字符串
- C++在测试成员变量是否等于NULL时冻结
- 在 Matlab .mat 文件中读取:变量的秩和变暗正确,但数据为 NULL
- 不正确地将成员变量设置为 null
- 如何检查LPCTSTR变量为null或为空
- 如何将变量添加到以null结尾的wchar_t字符串中
- c++无法为包含静态变量的对象设置NULL指针
- while循环外的变量在重新赋值时变为NULL
- 指针类变量从 muncion 返回 NULL