当前位置:C++技术网 > 资讯 > win32通用函数总结:14 wsprintf,wvsprintf

win32通用函数总结:14 wsprintf,wvsprintf

更新时间:2015-12-28 22:19:35浏览次数:1+次

int lstrlen(LPCTSTR lpString);
参数解释:lpString是以空为结束的字符串
返回值:返回lpString的大小
函数作用:获取字符串的长度
代码例子:
#include <Windows.h>
#include <tchar.h>
int main()
{
TCHAR lpString1[] = _T("C++技术网");
int nlen = lstrlen(lpString1);//调试查看nlen的值,为6
return 0;
}
int wsprintf(LPTSTR lpOut,LPCTSTR lpFmt,...);
参数解释:lpOut是指向用来接收格式化输出的缓冲区,即格式化后的字符串,这块缓冲区的最大值是1024字节
 lpFmt是以空为结束的字符串,包含了格式化控制的特定内容,跟C语言的printf差不多,更多信息请看MSDN的Remarks section部分
 ...指定一个或多个可选参数,参数数量和类型依赖于lpFmt参数中的格式化内容
返回值:函数成功返回成功存储在输出缓冲区的字符个数,即lpOut字符串的长度大小,不包含结束符
        函数失败返回小于期望输出缓冲区(即lpOut字符串)的长度大小的数值,获取更多错误信息请调用GetLastError函数
函数作用:格式化并存储一系列字符和数值到缓冲区(字符串)中
代码例子:
#include <Windows.h>
#include <tchar.h>
int main()
{
TCHAR lpOut[10];
const TCHAR lpFmt[] = _T("%s");
int nResult = wsprintf(lpOut,lpFmt,_T("C++技术网"));
MessageBox(NULL, lpOut, _T(""), MB_OK);//显示C++技术网
return 0;
}
int wvsprintf(LPTSTR lpOutput,LPCTSTR lpFmt,va_list arglist);
参数解释:前两个参数请参考wsprintf函数,arglist是一系列参数的列表,每一个参数都对应lpFmt里面的格式化内容
返回值:函数成功返回成功存储在输出缓冲区的字节个数,即lpOut字符串的长度大小,不包含结束符
        函数失败返回小于期望输出缓冲区(即lpOut字符串)的长度大小的数值,获取更多错误信息请调用GetLastError函数
函数作用:格式化并存储一系列字符和数值到缓冲区(字符串)中
注意:因为要涉及可变参数,所以需要有一个函数封装,该函数需要有...参数,其实wsprintf就是调用wvsprintf函数写的,
arglist这个参数很灵活,可以实现一些参数不定的函数,例如计算一些数的平均值,具体实现请看MSDN的va_list
代码例子:
#include <Windows.h>
#include <tchar.h>
void printt(TCHAR *lpOutput, const TCHAR *lpFmt, ...);
int main()
{
TCHAR lpOutput[10];
printt(lpOutput, _T("%s%d"), _T("C++技术网"), 123);
MessageBox(NULL, lpOutput, _T(""), MB_OK);//显示C++技术网123
return 0;
}

void printt(TCHAR *lpOutput, const TCHAR *lpFmt, ...)
{
va_list arglist;
va_start(arglist, lpFmt);
int nResult = wvsprintf(lpOutput, lpFmt, arglist);
va_end(arglist);
}

可能有些地方描叙不准确或者理解有错误的地方,希望大家能提出来,我会好好改进的。

win32通用函数总结完了,希望能帮助到大家。