连接DWORD和LPCTSTR

时间:2016-06-13 08:39:45

标签: c++ string

我有一个记录错误的旧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表示法。

1 个答案:

答案 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);

sprintfformat specifiers链接的文档,对于HEX,它将是%X

$search = $_POST['search'];
$result = $db->query('SELECT * FROM LEERLINGEN WHERE voornaam=' . $search);