lstrcpyn在unicode下如何置空

nwao7890 2013-12-13 03:26:43
关于这个函数以前一直这样用
lstrcpyn(pStr, '\0', nSize);

今天换了unicode后,提示
 warning C6309:  Argument '2' is null: this does not adhere to function specification of 'lstrcpynW'
, 后来一想'\0'在uncode下不行,需要\0\0才行,
要怎么写呢

lstrcpyn(pStr, "\0\0", nSize);//这样?怎么感觉怪怪的,我想要一种可以在ansi和unicode下都不报的写法

求大神指点

...全文
153 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
图灵狗 2013-12-13
  • 打赏
  • 举报
回复
不错!
引用 4 楼 nwao7890 的回复:
lstrcpyn(pStr, _T(""), nSize);//试了半天,这样写就好了
引用 3 楼 turingo 的回复:
直接写0试试看。
nwao7890 2013-12-13
  • 打赏
  • 举报
回复
lstrcpyn(pStr, _T(""), nSize);//试了半天,这样写就好了
引用 3 楼 turingo 的回复:
直接写0试试看。
图灵狗 2013-12-13
  • 打赏
  • 举报
回复
直接写0试试看。
引用 2 楼 nwao7890 的回复:
感谢关注,还想请教下

//lstrcpyn在winbase.h中定义如下
#ifdef UNICODE
#define lstrcpyn  lstrcpynW
#else
#define lstrcpyn  lstrcpynA
#endif // !UNICODE
也就是只要更改编译选项就可以将lstrcpyn 自动改成 lstrcpynW 或 lstrcpynA 那在调用时 我不想写

#ifdef UNICODE//这样写好麻烦。。
lstrcpynW(pStr, 0x0000, nSize);
#else
lstrcpynA(pStr, '\0', nSize);
#endif // !UNICOD

//想要一句话在unicode和ansi下都能正常编译的话
lstrcpyn(pStr, 这里写该什么, nSize);
[quote=引用 1 楼 turingo 的回复:] 要用lstrcpynW吧,0可以用0x0000来表达。 [quote=引用 楼主 nwao7890 的回复:] 关于这个函数以前一直这样用
lstrcpyn(pStr, '\0', nSize);
今天换了unicode后,提示
 warning C6309:  Argument '2' is null: this does not adhere to function specification of 'lstrcpynW'
, 后来一想'\0'在uncode下不行,需要\0\0才行, 要怎么写呢

lstrcpyn(pStr, "\0\0", nSize);//这样?怎么感觉怪怪的,我想要一种可以在ansi和unicode下都不报的写法
求大神指点
[/quote][/quote]
nwao7890 2013-12-13
  • 打赏
  • 举报
回复
感谢关注,还想请教下

//lstrcpyn在winbase.h中定义如下
#ifdef UNICODE
#define lstrcpyn  lstrcpynW
#else
#define lstrcpyn  lstrcpynA
#endif // !UNICODE
也就是只要更改编译选项就可以将lstrcpyn 自动改成 lstrcpynW 或 lstrcpynA 那在调用时 我不想写

#ifdef UNICODE//这样写好麻烦。。
lstrcpynW(pStr, 0x0000, nSize);
#else
lstrcpynA(pStr, '\0', nSize);
#endif // !UNICOD

//想要一句话在unicode和ansi下都能正常编译的话
lstrcpyn(pStr, 这里写该什么, nSize);
引用 1 楼 turingo 的回复:
要用lstrcpynW吧,0可以用0x0000来表达。 [quote=引用 楼主 nwao7890 的回复:] 关于这个函数以前一直这样用
lstrcpyn(pStr, '\0', nSize);
今天换了unicode后,提示
 warning C6309:  Argument '2' is null: this does not adhere to function specification of 'lstrcpynW'
, 后来一想'\0'在uncode下不行,需要\0\0才行, 要怎么写呢

lstrcpyn(pStr, "\0\0", nSize);//这样?怎么感觉怪怪的,我想要一种可以在ansi和unicode下都不报的写法
求大神指点
[/quote]
图灵狗 2013-12-13
  • 打赏
  • 举报
回复
要用lstrcpynW吧,0可以用0x0000来表达。
引用 楼主 nwao7890 的回复:
关于这个函数以前一直这样用
lstrcpyn(pStr, '\0', nSize);
今天换了unicode后,提示
 warning C6309:  Argument '2' is null: this does not adhere to function specification of 'lstrcpynW'
, 后来一想'\0'在uncode下不行,需要\0\0才行, 要怎么写呢

lstrcpyn(pStr, "\0\0", nSize);//这样?怎么感觉怪怪的,我想要一种可以在ansi和unicode下都不报的写法
求大神指点

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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