我正在使用 IXLMDOMDocument 从流中加载 xml 文件
IXMLDOMDocument *pDomDoc = pDomDoc->load(vtHtmlSource, &vfSuccess);
加载流(包含 xml 内容)后,它创建样式表以获取内容 ident
适本地。上面的部分工作没有任何问题。我对此很确定,但在那之后,当 A 转换节点(样式表到 bstrRtf
)时,如下所示 -
BSTR bstrRtf;
hr = pDomDoc->transformNode(m_pStyleSheetNode, &bstrRtf);
//on debugging we get m_pStyleSheetNode = 0x0000000002b77ba8 that means it is correct and stylesheet is created properly.
//but bstrRtf = 0xcccccccccccccccc <Bad Ptr> = CXX0030: Error: expression cannot be evaluated
//that means there is some problem here
if (hr) {
hr = HRESULT_FROM_WIN32(GetLastError()); //this hr surprisingly returns OK(hr = S_OK)
};
我不知道为什么或如何。它不应该这样做,因为在 bstrRtf
我们有一个非常奇怪的值。我希望它会给出一些错误,但我不知道为什么会这样。
谁能解释一下 bstrRtf = 0xcccccccccccccccc <Bad Ptr>
是什么意思?什么时候会有人得到这种类型的错误? 0xcccccccccccccccc <Bad Ptr>
是什么意思?
当我用零初始化它时,错误是instance->m_bstrRtf = 0x0000000000000000 <Bad Ptr>
在调试。并没有工作。但为什么在这之后它仍然返回 S_OK??
最佳答案
bstrRtf
未初始化 - 它还没有有效值。 0xcccccccccccccccc
的实际值是 MS 填充内存的内容,以便可以检测未初始化的变量。
这个值是专门选择的,因此它“不是有效的内存地址”——这样,你就不会意外或故意使用未初始化变量的内存而不会出现某种错误或陷阱。
关于c++ - BSTR bstrRtf = 0xcccccccccccccccc <Bad Ptr> 调试 ( = CXX0030 : Error: expression cannot be evaluated),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18018644/