📄 subject_36458.htm
字号:
<p>
序号:36458 发表者:秘密 发表日期:2003-04-15 18:05:22
<br>主题:如何将普通CString转为Unicode的CString
<br>内容:求救:<BR>主程序exe工程没有用Unicode编码<BR>而我在做的Dll工程中却定义的Unicode,<BR>这样我的Dll工程就不认由主程序传过的CString类型参数<BR><BR>我用类似方法转换,<BR><BR>HRESULT AADLL::Ping(CString ClientAddr) <BR>{<BR> WCHAR wsrAddr[100];<BR> int len = ClientAddr.GetBuffer( ClientAddr.GetLength()+1),<BR> <BR> MultiByteToWideChar(CP_ACP,0,ClientAddr.GetBuffer(len),-1,wsrAddr,len);<BR> ClientAddr.ReleaseBuffer (-1);<BR> <BR> ......<BR>}<BR><BR>却得到:<BR>erro C2664:'MultiByteToWideChar':cannot convert parameter 3 from 'unsigned short*'to 'const char*'<BR><BR>我用(LPTSTR)(LPCTSTR)ClientAddr也是同样的错误,<BR><BR>说明:<BR>//ClientAddr为主程序exe传进的CString类型的字符串<BR>//在Unicode类型的dll中不能被正确识别,打印出来的是'???????'<BR><BR>请问诸位大虾这该如何是好?<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:Eddie 回复日期:2003-04-15 19:46:12
<br>内容:一般构造一个COM类字符串,用CString作为参数即可,具体实现如下:<BR><BR> CComBSTR bstrClientAddr(ClientAddr); <BR> <BR>CComBSTR超出作用域后会自动释放。<BR>如何有疑问可将你在代码传过来。<BR><BR>希望就在眼前!祝你成功!<BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -