首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

wsprintf函数疑问解决方案

2012-02-15 
wsprintf函数疑问wsprintf(szPort,L COM%d: ,portNo)L是什么意思?如果portNo是1,szPort是什么?[解决办

wsprintf函数疑问
wsprintf(szPort,   L "COM%d: ",   portNo);

L是什么意思?

如果portNo是1,szPort是什么?




[解决办法]
看样子是一个Buffer可能是char型数组
[解决办法]
wsprintf,这是一个字符串格式化函数,可以将数值按指定格式翻译成字符串,类似于C语言中的printf函数,它的原型是这样的:

int wsprintf(
LPTSTR lpOut, // 输出缓冲区地址
LPCTSTR lpFmt, // 格式化串地址
... // 变量列表
);

变量列表的数目由格式化字符串规定,wsprintf处理格式化字符串,遇到普通的字符则直接拷贝到输出,遇到%字符则代表有一个变量,%后面不同的字母表示不同的输出格式,如%d表示输出为整数,%x表示输出为16进制,%s表示输出字符串等。
所以……知道输出是什么了吧……COM1

[解决办法]
wsprintf(szPort, L "COM%d: ", portNo);
意思是格式化一个字符串,把结果放在szPort中;

如果portNo是1,szPort是什么?
szPort就是 "COM1: "

L是一个宏,用来把字符串转换成unicode字符串
[解决办法]
L不是宏,是预处理
让编译器将后面的字符串以unicode形式存放

热点排行