Занимаюсь сейчас перетаскиванием некоей либы с винды на линукс, все бы хорошо кроме одного момента, есть там такой код:
#ifdef UNICODE
#define _stprintf swprintf
#elseif
#define _stprintf sprintf
#endif
Если без #define UNICODE, то все нормально, а вот иначе лезут ошибки, ибо в линуксе у sprintf и swprintf разные аргументы (чего видимо нет в винде).
int sprintf(char *str, const char *format, ...);
int swprintf(wchar_t *wcs, size_t maxlen,const wchar_t *format, ...);
Нужно как-то добиться нормальной компиляции юникодной версии, перелопачивать весь остальной код не пойдет. Надо написать какой-то макрос или свою функцию которая бы принимала те же аргументы что и виндовая swprintf. Однако я не могу сообразить как передать произвольное число аргументов в другую функцию...
Хоть я и путано все изложил, но надеюсь понятно что мне надо?