wsprintf用法有疑惑?

奋斗_小伙 2014-07-28 11:10:23

①wsprintf(szDevicename,L"\\\\.\\%c:",nDriveNo);
②wsprintf(strTime,"%i年%i月%i日 %i:%i:%i",stLocal.wYear,stLocal.wMonth,stLocal.wDay,stLocal.wHour
,stLocal.wMinute,stLocal.wSecond);
网上搜索到的关于wsprintf的用法信息:
wsprintf对应的字符串是宽字符型wchar_t,即一个字符占用2个字节的内存空间.
wsprintf是对UNICODE的多语言字符进行操作,如wsprintf(buffer, L"unicode");

问题:为什么 ①格式字符串前面有L,②没有也能运行通过呢? 最好能详细点

新手刚刚接触API编程,感谢大家来解惑,想半天了都,谢谢!
...全文
82 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
这跟你工程选的字符集有关多字符或者是unicode下的有关
  • 打赏
  • 举报
回复
1、字符串前面加一个L表明是UNICODE字符 一般使用_T(""),在VC下 2、不加L,是在strTime为非宽字符,工程设置也为非UNICODE的情况下才能编译通过

69,378

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧