我在一函数内定义了一个局部变量,在release版本和debug版本下显示的值不同。
请高手指点!!!
请高手指点!!!
解决方案 »
- 在MFC中该如何建立一个非模式话的对话框啊,急啊!!
- 如何自定义画刷
- 求助,MFC显示HTML文档
- 哪里有类似桌面的程序样例
- 在树形控件中,如何用鼠标右键改变当前焦点?
- 谁能给我介绍一本关于 VC++与XML的书啊
- VisualStudio (嗷~~~) 进来拿分
- 请教大侠,急呀在installShield中的注册控件的函数是啥,谢谢了
- 如何在对话框中输入命令实现对图形的命令操作(如输入x=2,y=2对话框右边出现2*2阶组合图即4个小缩略图)?本人现在做的是液晶拼接控制软件
- 见鬼了,我正宗的MFC不认 HITREEITEM !!CString和char*不能直接操作 !!
- 重赏之下,必有勇夫
- 关于把一个sdi工程镶入一个mdi工程中
{
long int nTelLength,nPos,nNum,nPosTmp;
char inchar,inchar1;
char *pOutput,*pOutputTmp;
CString strOutput;
BOOL bExistFlag[]={0,0,0,0,0,0,0,0,0,0,0,0}; char s[12];
s[0]=0x10; s[5]=0x15; s[10]=0x1A;
s[1]=0x11; s[6]=0x16; s[11]=0x1B;
s[2]=0x12; s[7]=0x17;
s[3]=0x13; s[8]=0x18;
s[4]=0x14; s[9]=0x19; int i; nTelLength=strInput.GetLength ();
pOutput=(char *)malloc(nTelLength);
if(pOutput==NULL)
AfxMessageBox("No Sufficient Memory");
pOutputTmp=pOutput;
nNum=0;
for(nPos=0;nPos<nTelLength;nPos++)
{
strcpy(&inchar,strInput.Mid (nPos,1));
switch(inchar)
{//
case '':
break;
case 0x00:
break;
case 0x08:
nPos+=10;
break;
case 0x10:
for(i=0;i<12;i++) bExistFlag[i]=0;
nPos+=4;
*pOutputTmp=inchar;
pOutputTmp++;
nNum++;
bExistFlag[0]=1;
break ;
default :
if(inchar>=0x11 && inchar<= 0x1B)
{
//去除末尾的空格符
nPosTmp=nPos;
do
{
nPos--;
pOutputTmp--;
nNum--;
strcpy(&inchar1,strInput.Mid (nPos,1));
}
while(inchar1==0x20); pOutputTmp++;
nNum++;
nPos=nPosTmp+4;
//加入格式符号
i=inchar%0x10;
bExistFlag[i]=1;
do
{
i--;
}while(bExistFlag[i]==0);
i++;
while(bExistFlag[i]==0)
{
bExistFlag[i]=1;
//*pOutputTmp=s[i];
//pOutputTmp++;
nNum++;
i++;
}
}//if
*pOutputTmp=inchar;
pOutputTmp++;
nNum++;
break;
}//switch
}//for
strOutput=pOutput;
//CString lengthm;
//lengthm.Format("%d",nNum);
//AfxMessageBox(lengthm);
strOutput=strOutput.Mid (0,nNum);//nNum的值在debug与release下不同。
free(pOutput);
return strOutput;
}
直接用 inchar = strInput[nPos]
http://community.csdn.net/Expert/topic/3219/3219449.xml?temp=.6365167
不过是要将strcpy(&inchar,strInput.Mid (nPos,1));
换成。inchar = strInput.GetAt(nPos);