我面前有一段代码遍历了一长串网址,当这些网址包含某种类型的文档时会出现问题。我不想看到每次迭代,所以我设置了一个条件断点。
麻烦的是,我不是一名C ++程序员,因此我不得不四处寻找如何做我想做的事情,我可能会做一些明显错误的事情。
我目前的情况是:
(strstr( url, "xlsx") == 0x00000000)
这应该意味着每当url(这是一个UNICODE_char *)不包含文字“xlsx”时,strstr将返回一个应该符合条件的空指针,正如我所理解的那样。从长远来看,我实际上想要它反过来,但因为只有几个“xlsx”网址,我想检查它是否正常工作我现在已经这样了。
好吧,我的状况没有得到满足,或者至少没有触发断点。
假设我做错了什么,我复制了与watch表达式相同的值,并在之前的行上设置了一个无条件断点。当我走过我的同一个断点时,结果看起来像这样:
Name | Value
================================================
(strstr( url, "xlsx") == 0x00000000) | true
显然,就监视窗口而言,我的条件可能是真的但不会触发条件断点。
为了进一步试验,我尝试将条件翻过来,所以它是
(strstr( url, "xlsx") != 0x00000000)
就条件断点而言,这也是假的,这似乎有点滑稽,因为这意味着它既不等于也不等于空指针值。
这是C ++中空值的一些不寻常的属性吗?是否有一些非常明显的东西我不知道或者语言的一些怪癖让我完全错过了这艘船?
答案 0 :(得分:1)
如果您的网址是unicode字符串,您是否尝试过使用wcsstr?