Я отлаживаю старый C-код, написанный в нашей компании.Функция выглядит примерно так -
uint32
ExecuteCommand(wchar_t *dnsName, // IN
wchar_t *dnsUser, // IN
PNameValue *nameValues, // OUT
size_t *valuesSize) // OUT
{
....
Чтобы отладить это, мне нужно проверить значения dnsUser и dnsName, передаваемые в эту функцию.Я попробовал следующие варианты -
Util_Log(L"Printing the userName %S", dnsUser);
Util_Log(L"Printing the userName ", dnsUser);
Util_Log(L"Printing the userName %ls", dnsUser);
Util_Log(L"Printing the userName %lS",dnsUser);
Util_Log - это проприетарный API журналирования, используемый в нашей компании.Однако ничего из вышеперечисленного не работает, и userName печатается в искаженной форме в сгенерированных журналах.Я пытался использовать printf и wprintf, но это ничего не печатало в журналах -
printf("Printing the userName %S",userName);
wprintf("Printing the userName %lS %S", userName);
Просто добавлю: Ниже приведена подпись SimCfg_Log API.
void
Util_Log(const wchar_t *fmt, // IN
...) // IN
Что является правильнымспособ печати аргументов wchar_t в методе?Кроме того, есть идеи, почему использование printf и wprintf ничего не печатает в логах?