私はVS2012proを使用して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 ++に少し慣れておらず、paramsの使用に非常に慣れていません(申し訳ありませんが、私はC#の人です)。これは私がそれで遊んで約1時間で得た限りです。私は何が間違っているのですか?