我正在使用 VS2012 pro 用 VC++ 编写并试图让我的记录器输出类似这样的内容
03/26/2013 Registry()+
03/26/2013 Registry::LoadDWORD("VersionNumber")+;
03/26/2013 Registry(3)-
使用以下代码行
RegistryHelper::RegistryHelper()
{
LogWriter::WriteStart("Registry");
}
bool RegistryHelper::LoadDWORDValue(char* entry, UINT defaultValue, UINT& returnValue)
{
LogWriter::WriteStart("Registry::LoadDWORD", entry);
//Code to get DWORD
LogWriter::WriteEnd("Registry::LoadDWORD", returnValue);
return true;
}
我到目前为止的代码是这个
void LogWriter::WriteStart(const char* log, ...)
{
tcout << log << "(";
va_list argptr;
va_start(argptr, log);
vfprintf(stderr, log, argptr);
va_end(argptr);
std::wcout << ")+" << EOL;
}
作为测试,我写了这个。
LogWriter::WriteStart("Registry", "Something", "else", "Start", "STop");
char* entry = "VersionNumber";
LogWriter::WriteStart("Registry", entry);
LogWriter::WriteStart("Registry");
但我只是回来
2013-03-26.11:41:15 Registry()+
2013-03-26.11:41:15 Registry()+
2013-03-26.11:41:15 Registry()+
但我期待回来
2013-03-26.11:41:15 Registry(Something, else, Start, STop)+
2013-03-26.11:41:15 Registry(VersionNumber)+
2013-03-26.11:41:15 Registry()+
通过一些玩弄它(主要是从网上获取代码并尝试一些不同的东西),我已经能够让它说出来Registry(Registry)+
,但我已经接近了。(我正在使用 while 循环并检查 NULL)我对 VC++ 有点陌生,对使用参数也很陌生(对不起,我是 C# 人)。这是我在玩了大约 1 个小时后得到的结果。我究竟做错了什么?