⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_49055.htm

📁 vc
💻 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>&nbsp;&nbsp; zsdevmode-&gt;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() &lt;= 32;<BR>// 因为CHDEVICENAME = 32<BR>BSTR bs = str.AllocSysString ();<BR>LPDEVMODE zsdevmode;<BR>wcscpy(zsdevmode-&gt;dmDeviceName,bs);<BR>SysFreeString(bs);<BR>&nbsp;&nbsp;&nbsp;&nbsp;
<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>&nbsp;&nbsp;&nbsp;&nbsp;typedef WCHAR BCHAR;<BR>#else<BR>&nbsp;&nbsp;&nbsp;&nbsp;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()&lt;=31);<BR>DEVMODE zsdevmode;<BR>&nbsp;&nbsp;&nbsp;&nbsp;<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 + -