我有一个记录错误的旧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表示法。
答案 0 :(得分:3)
问题是标记为C ++,但代码是和问题是用C风格编写的 - 每个解决方案各不相同;
对于C ++,请使用DWORD dwError;
dwError = SomeFunction();
if (dwError)
{
std::basic_string<TCHAR> msg(_T("Something failed: "));
msg += std::to_string(dwError);
Log(msg.c_str());
}
;
DWORD dwError;
dwError = SomeFunction();
if (dwError)
{
TCHAR buffer[1024] = {};
_stprintf(buffer, _T("Something failed: %u"), dwError);
Log(buffer);
}
更多C风格;
_stprintf(buffer, _T("Something failed: %X"), dwError);
sprintf
的format specifiers链接的文档,对于HEX,它将是%X
。
$search = $_POST['search'];
$result = $db->query('SELECT * FROM LEERLINGEN WHERE voornaam=' . $search);