Cstring str1("asf");
char *send;
send=new char[1000];
strcpy(send,(const char *)str1.GetBuffer());
....
程序中的部分代码如上 为什么经过上面的复制后在send里面只是第一字母不是应该吧str1的整个字符串都复制过去的么问题出在哪里 编译能通过 麻烦解答下 谢谢!
char *send;
send=new char[1000];
strcpy(send,(const char *)str1.GetBuffer());
....
程序中的部分代码如上 为什么经过上面的复制后在send里面只是第一字母不是应该吧str1的整个字符串都复制过去的么问题出在哪里 编译能通过 麻烦解答下 谢谢!
解决方案 »
- 两个对话框 为什么主对话框最小化 另外一个也跟着最小化了?
- 关于RGB图像转换为灰度图像的问题
- 【提问】关于 FFMPEG 的问题
- 焦点设置
- 进程外服务器是怎样启动的?
- 如何监听一个被绑定的端口?
- ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
- 有关键盘热键的一个问题
- 不活动的窗口如何将自己提到前台来?
- 紧急求助:如何在list 控件里动态放入Check Box控件组?
- SDI分割窗口后,在CxxView类里无法处理控件消息
- mfc 我创建一个ocx控件,想注册一个类名?
你后面加个AfxMessageBox(send);
看内容是不是"asf"
CString str1("asf");
char *send;
send=new char[1000];
strcpy(send,(const char *)str1.GetBuffer(str1.GetLength()));
////GetBuffer()带的参数不对。。要象这个一样。。
strcpy(send,(LPCTSTR)(LPTSTR)str1);
CHAR *sendbuffer;
sendbuffer=new CHAR[1000];
GetDlgItemText(IDC_SEND,strsend);
strcpy_s(sendbuffer,strsend.GetLength()+1,(const CHAR *)strsend.GetBuffer(0));
AfxMessageBox((LPCTSTR)sendbuffer);
代码上面你们说过的方法也是过了 都不行 怎么会是 用的是vs2008
TCHAR *sendbuffer=new TCHAR[1000];
//因为不清楚你的字符集,就用这个吧GetDlgItemText(IDC_SEND,strsend); _tcscpy(sendbuffer,(const TCHAR *)strsend.GetBuffer(0));
CString strBuf("asf");
string str1= CString2string(strBuf);
sprintf(send,"%s",str1.c_str()); //这用什么都行了,什么memcpy,strcpy...等等转换函数
static string CString2string(CString strSrc)
{
string strDes;
#ifndef UNICODE
strDes = strSrc;
#else
USES_CONVERSION;
strDes = W2A(strSrc.LockBuffer());
strSrc.UnlockBuffer();
#endif
return strDes;
}
#include <string>
using namespace std;应该不要提醒了吧
wpTemp=strsend.GetBuffer(strsend.GetLength()+1);
size_t sendnum=wcslen(wpTemp);
size_t convertedChars = 0;
CHAR *sendbuffer;
sendbuffer=new CHAR[sendnum];
wcstombs_s(&convertedChars,sendbuffer,sendnum,wpTemp,_TRUNCATE);
找到解决办法了 但是问题还是很多 我这是在做课本的练习,用套接字编一个简单的聊天 上面这样转化后再用sendto发送出去,但是经过上面转化后 如果是英文就没问题 但是换成汉字在CString对象里,就不行了各位碰到过这种问题么 上面的代码验证是成功的 各位可以看看