适用于Linux和Windows的wprintf便携式代码

时间:2019-04-30 06:42:22

标签: c linux windows printf stdout

我有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

能否请您提供解决此问题的更好方法。谢谢。

0 个答案:

没有答案