一个CString的问题

njtuwm 2006-04-27 11:26:10
和IDC_EDIT(编辑框)关联的变量m_Num,
在给别的变量赋值的时候,m_Num的值也会跟着改变,
非常奇怪,找不到原因,请高手指教啊。

例如:
CString xx=_T("");
单步执行的时候发现m_Num也变成了“”。



...全文
148 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
njtuwm 2006-04-28
  • 打赏
  • 举报
回复
后面再执行
strcpy(m_ImageName.GetBuffer(0), "");
m_Num的值又变为了“”,
郁闷啊。。
njtuwm 2006-04-28
  • 打赏
  • 举报
回复
我当然看过自己写的代码了,就是找不到原因才提问的。

FILE *fp;
fp=fopen("Num.txt", "r");

if(fp == NULL)
{
FILE *fp1;
fp1 = fopen("Num.txt","w");
m_Num = "000";
fprintf(fp1, "000");
fclose(fp1);
fclose(fp);
}
else
{
fscanf(fp,"%s", m_Num);
fclose(fp);
}

//此时m_Num的值为“000”
FILE *fp2;
fp2=fopen("WorkDir.txt","r");

if(fp2 == NULL)
{
FILE *fp3;
fp3 = fopen("WorkDir.txt","w");
fprintf(fp3, "I:\\PPDB");
fclose(fp3);
fclose(fp2);
}
else
{
fscanf(fp2, "%s", WorkDir);//此时m_Num的值就变成“I:\\PPDB”了,
fclose(fp2);
}

请问我该怎么解决这样的问题啊??
zhyuanbaron 2006-04-28
  • 打赏
  • 举报
回复
怎么会指向同一个内存区的??
CString xx 和 m_Num 又没什么关系,又没有指针操作

应该是代码的问题吧,看看是不是哪里关联了
wcmj 2006-04-28
  • 打赏
  • 举报
回复
你代码肯定有问题!
Alan S1 2006-04-28
  • 打赏
  • 举报
回复
两个变量的内存指向同一个内存区
sad_4978 2006-04-28
  • 打赏
  • 举报
回复
两个变量的内存指向同一个内存区了,不要用“=”复制,要拷贝过去。
CString strTemp;
strcpy(strTemp.GetBuffer(0), m_Num.GetBuffer(0));
你试试看吧,应该不会再出现你说的现象了。
abuseyoudna1981 2006-04-28
  • 打赏
  • 举报
回复
有没有这么神奇呀.我觉得你还是认真看一下你自己的代码比较好.

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧