- 论坛徽章:
- 0
|
原帖由 web_surf 于 2007-9-6 16:06 发表 ![]()
va_list
va_start va_arg va_end
如果你准备用vprintf系列函数,就比较简单。
否则,你得自己解析format中的格式化字串。
这种方法我也试验过,我的代码如下(本人还是觉得有问题):
int FTwprintf( unsigned short * str, int n, const unsigned short* format,... )
{
char *Cformat = Misc::locale_from_utf16( format ); //我自己用来转换函数,已经调试过绝对ok.
char buf[256];
int retval;
va_list vs;
va_start(vs, format);
retval = vsprintf( buf, Cformat, vs ); //这里直接用format代替Cformat,编译不通过
str = smMisc::locale_to_utf16(buf); //这个函数也绝对可以信得过。
va_end(vs);
return retval;
} |
|