如何使用OutputDebugString添加指针

时间:2016-03-21 11:56:53

标签: c++ visual-c++

我在调试模式下有代码:

OutputDebugString(_T("Element Name = ") + (Node->getParentElement() == NULL ? "null" : Node->getParentElement()->getName()) + _T("\n"));

 //getname() type is CString and GetParentElement() type is CXMLElement

使用此代码,我得到以下错误: 错误C2110:' +' :无法添加两个指针。 我知道无法添加两个指针。

我应该使用什么API来清除此错误?

3 个答案:

答案 0 :(得分:1)

您可以按照以下方式使用它:

TCHAR msgbuf[256]; //keep required size
sprintf(msgbuf, "The value is %s\n", charPtrVariable);
OutputDebugString(msgbuf);

答案 1 :(得分:1)

由于问题标有C++,我建议使用stringstream:

#include <sstream>
//...
std::stringstream ss;
ss << "Element Name = " 
   << (Node->getParentElement() == NULL ? "null" : Node->getParentElement()->getName()) 
   << std::endl;
OutputDebugString(ss.str().c_str());

答案 2 :(得分:0)

因为你不能将两个指针一起添加到连接字符串,所以你可以使用一个临时的CString对象并附加到它:

CString tmp = _T("Element Name = ");
tmp += Node->getParentElement() == NULL ? "null" : Node->getParentElement()->getName();
tmp += _T("\n");
OutputDebugString(tmp);