📄 subject_49055.htm
字号:
<p>
序号:49055 发表者:金枪鱼 发表日期:2003-08-06 12:51:41
<br>主题:BCHAR是什么数据类型
<br>内容:DEVMODE结构中有一个dmDeviceName成员,是BCHAR类型。<BR>这个类型是什么类型。<BR><BR>怎样才能将CString类型的参数赋值给它?<BR><BR>CString strPrinterName=_T("HPLJ6L");<BR>LPDEVMODE zsdevmode;<BR> zsdevmode->dmDeviceName=strPrinterName;<BR><BR>编译报错: 无法从“CString”转换为“BYTE [32]”<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:ax 回复日期:2003-08-06 13:28:28
<br>内容:BCHAR就是WCHAR,和wchar_t一样都是宽字符,可以使用BSTR指向他:<BR>代码可如下:<BR><BR>CString str(_T("中华人民sfd共和过afd"));// str.GetLength() <= 32;<BR>// 因为CHDEVICENAME = 32<BR>BSTR bs = str.AllocSysString ();<BR>LPDEVMODE zsdevmode;<BR>wcscpy(zsdevmode->dmDeviceName,bs);<BR>SysFreeString(bs);<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Justin Le 回复日期:2003-08-06 13:28:44
<br>内容:#ifdef UNICODE<BR> typedef WCHAR BCHAR;<BR>#else<BR> typedef BYTE BCHAR;<BR>#endif
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Justin Le 回复日期:2003-08-06 13:37:19
<br>内容:如果Unicode, 可以用wcscpy<BR>wcscpy is the wide-character version of strcpy. The arguments and return value of wcscpy are wide-character strings. These two functions behave identically otherwise.<BR>如果byte,可以strcpy
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:金枪鱼 回复日期:2003-08-06 16:15:56
<br>内容:谢谢指点!<BR><BR>“wcscpy” : 不能将参数 1 从“BYTE [32]”转换为“wchar_t *”<BR><BR>啊,我们平常编程,似乎没有定义UNICODE<BR>也就是说没有使用宽字符集<BR>那么,这个变量应该时BYTE,照理说可以直接使用strcpy。<BR><BR>但<BR>ASSERT(strPrinterName.GetLength()<=31);<BR>DEVMODE zsdevmode;<BR> <BR>strcpy(zsdevmode.dmDeviceName,strPrinterName.GetBuffer());<BR>strPrinterName.ReleaseBuffer();<BR>也不对,说:不能将参数 1 从“BYTE [32]”转换为“char *”<BR>到底该如何写?<BR><BR>还有那个DEVNAMES结构中的wDeviceOffset成员,类型就是DWORD。<BR>而我手头的数据都是CString。怎样赋值进去?<BR>另外就是把它们怎样又赋值给打印对话框的成员数据m_pd的hDevMode和hDevNames,这两个又是可移动全局内存的句柄。<BR><BR>我是要用这两个结构指定打印对话框的参数的啊,到底该怎样完成,我已经弄了几天了。<BR>2003-8-6 16:20:13
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -