最近在研究网狐棋牌框架,发现它的日志模块需要优化,于是就将之前写的一个日志模块拿过来用了,可编译时发才发现,网狐的是uicode模式下编译,于是就修改日志模块的字符串兼容性
因为文件IO对性能消耗的影响,所以单独开线程来写文件,于是需要一个BUFF在线程中做数据交换,在字符串拷贝时,使用了CopyMemory,因为我看网狐棋牌中很多都是用CopyMemory,所以我也就没有太在意他的适用性,结果测试时发现,写出来的日志内容被截断了;
使用CopyMemory之后
后面就被截断了,不知道为何;
最后发现,CopyMemory最终的原型还是memcpy, 而unicode下, memcpy对应的版本是wmemcpy, 好像发现问题所在了
后面仔细想了一下,memcpy只是拷贝内存,不同于strcpy之类的函数啊,如果len没有问题,那就没有问题。