我有Windows代码,需要移植到Linux。
例如,Windows使用许多wprintf_s函数。
wprintf_s(L"Not enough input parameters. See usage statement below.\n\n");
我们在Linux中没有wprintf_s,因为参数相同,所以我使用以下语句将wprintf_s转换为wprintf
#define wprintf_s wprintf
但是我有一个问题,Linux中的wprintf仅为此语句打印一个字符。
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
能否请您提供解决此问题的更好方法。谢谢。