У меня есть код Windows, который нужно перенести на Linux.
Например, в Windows используется много функций wprintf_s.
wprintf_s(L"Not enough input parameters. See usage statement below.\n\n");
У нас нет wprintf_s в Linux,поскольку параметры одинаковы, я использую приведенный ниже оператор для преобразования wprintf_s в wprintf
#define wprintf_s wprintf
Но у меня возникла проблема, wprintf в Linux печатает только один символ для этого оператора.
wprintf_s(L"Failed to %u. [%s]: %s\n",
ucID,
GetStringErrorName(eError),
GetStringErrorDescription(eError));
Изменение% s до% ls даст мне полную строку.Но это заставит меня добавить много ниже
#ifdef _WIN32
wprintf_s(L"Failed to %u. [%s]: %s\n",
ucID,
GetStringErrorName(eError),
GetStringErrorDescription(eError));
#elif __linux__
wprintf_s(L"Failed to %u. [%ls]: %ls\n",
ucID,
GetStringErrorName(eError),
GetStringErrorDescription(eError));
#endif
Можете ли вы, ребята, предоставить лучший подход к этой проблеме.Спасибо.