我有一个记录错误的遗留Windows应用程序。找到抛出什么样的错误是很好的,但是在找到项目的源代码之后,我意识到这是C++,我几乎没有使用C++的经验。
错误代码是一个DWORD,日志函数的输入是一个LPCTSTR。
目前的代码如下:
DWORD dwError;
dwError = SomeFunction();
if (dwError)
{
Log(_T("Something failed"));
}因此,我希望将dwError的值放入日志消息中。我来自C#背景,我尝试过Log(_T("Something failed (" + dwError + ")"));,但这显然是行不通的。
我还试着阅读连接LPCTSTR值的内容。我确实找到了一些命中,但它们似乎非常复杂,我不知道如何将它们揉成某种东西来处理这些遗留代码。
如何让dwError成为日志消息的一部分,最好是HEX符号。
发布于 2016-06-13 08:42:58
这个问题被标记为C++,但是代码是,问题是用C风格写的--每个解决方案都不一样;
对于C++,利用std::basic_string;
DWORD dwError;
dwError = SomeFunction();
if (dwError)
{
std::basic_string<TCHAR> msg(_T("Something failed: "));
msg += std::to_string(dwError);
Log(msg.c_str());
}更多的C风格将是;
DWORD dwError;
dwError = SomeFunction();
if (dwError)
{
TCHAR buffer[1024] = {};
_stprintf(buffer, _T("Something failed: %u"), dwError);
Log(buffer);
}sprintf链接到格式说明符的文档和HEX的文档将是%X。
_stprintf(buffer, _T("Something failed: %X"), dwError);https://stackoverflow.com/questions/37785200
复制相似问题