我目前使用putExtra()
并且返回缓冲区的所需大小 。我分配它们然后再次调用_snprintf(NULL,0,fmtStr, Str..)
来填充缓冲区。但目前{@ 1}}已弃用,_snprintf
是推荐的功能。但是according to msdn如果没有事先分配缓冲区,它似乎没有返回长度。
有解决方法吗?
答案 0 :(得分:1)
在Windows中:在VS2015之前:
利用_vscprintf()
来获取扩展格式字符串的大小。分配内存并使用vsnprintf_s()
执行实际的缓冲区填充。
Gcc / Windows-VS2015向前:
(感谢Harry-Johnston指出这一点)snprintf()
应该可用。使用snprintf(NULL,0,...)
获取大小,分配mem,然后使用snprintf(buffer,..)
来执行实际的缓冲区填充。