读书人

wsprintf函数疑问解决方案

发布时间: 2012-02-15 12:09:44 作者: rapoo

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形式存放

读书人网 >VC/MFC

热点推荐