对话框类:
class CMyDlg : public CDialog
{
CString m_str1;
Cstring m_str2;
void ff();
........
}
构造函数中:
m_str1 = _T("");
m_str2 = _T("");CMyDlg ::ff()
{
UpadateData(true);
CString str;
char ss[]="ABC";
memcpy(str.GetBuffer(0),ss.strlen(ss));
//断点Q
}问题:
调用ff时m_str1、m_str2仍为空;
此时在断点Q处查看,发现m_str1、m_str2和str都为“ABC";
这三个字符串的缓冲区地址居然一样;
当将CString str;改为CString str(”123");
m_str1、m_str2缓冲区地址居然一样;但str和他们不一样;困惑不解,匪夷所思;
class CMyDlg : public CDialog
{
CString m_str1;
Cstring m_str2;
void ff();
........
}
构造函数中:
m_str1 = _T("");
m_str2 = _T("");CMyDlg ::ff()
{
UpadateData(true);
CString str;
char ss[]="ABC";
memcpy(str.GetBuffer(0),ss.strlen(ss));
//断点Q
}问题:
调用ff时m_str1、m_str2仍为空;
此时在断点Q处查看,发现m_str1、m_str2和str都为“ABC";
这三个字符串的缓冲区地址居然一样;
当将CString str;改为CString str(”123");
m_str1、m_str2缓冲区地址居然一样;但str和他们不一样;困惑不解,匪夷所思;
解决方案 »
- 如fopen、fread、fwrite等C语言文件操作函数中,有 “清楚文件内容,而保留一个空文件”的函数吗? 如果没有如何,实现这样的功能
- send发送一次 和 send发送两次 大小相同的数据
- 求改变edit框的高度
- 已知窗口句柄 如何查找第N个子窗口??
- 这个问题有点奇怪
- 关于VC6.0的生成文件拷贝到指定的目录的问题
- 关于CEdit的一个问题
- 请教一个关于Install shield 的问题。
- 中国软件的黑幕之最
- 网络传输问题,加多一块网卡会对传输有什么影响?
- 线程启动问题~~~分不够可以再加~
- 连接错误:error LNK2001: unresolved external symbol "class std::vector<struct _Setting,class std::allocator<struct _Setting> >
然后缓冲区是固定随机的吧
用CString.Format("%s",ss);吧
str赋值成空的的话,给str的buf申请的空间有限,你这样直接拷贝的话出错几乎是肯定的
你应该让str=ss;让系统自己分配内存CString是存在问题的,微软承认
要搞出一个错误还不简单吗