阅读:1218回复:2
虚拟打印机的pstro结构
虚拟打印机中,函数DrvTextOut有一个STROBJ结构的参数pstro,这个参数里记录了字符串的内容。我想将这内容写到另一个文件中,于是用了CreateFile和WriteFile函数,想将pstro->pwszOrg写到文件中,我是用wcslen(pstro->pwszOrg)函数得到pstro->pwszOrg所指向的字符串的长度。可是发现写到文件中的内容有乱码。是怎么回事呢?还有,我查找wcslen(pstro->pwszOrg)输出的都是奇数,当我实际要打印的字符串是6时,它输出的长度是7;可假若字符串长度是5时,它输出没问题。请问这又是怎么回事呢?
例如 我要打印机的文件内容是: 12331 dhgfdh adf sfdg dfs 11111 11111 121212 人是好的a 坏人就是坏人 那我写到文件中的内容变成了: 12331 2 dhgfdhG h adf d sfdgV f dfs 11111 11111 1 121212 人是Ta是 是坏人就R 人 请指点。 |
|
沙发#
发布于:2007-07-04 17:05
那是因为你的长度错误。用pstro->cGlyphs,而pstro->cGlyphs是以字为单位的,写文件里应该用pstro->cGlyphs*2。
|
|
板凳#
发布于:2007-07-04 17:07
我也遇到这个问题,上面就是我解决的方法。如果还是不行,那楼主就是别的地方有问题了。
|
|