📄 subject_38043.htm
字号:
<p>
序号:38043 发表者:hbm 发表日期:2003-04-30 11:39:12
<br>主题:Unhandled Exception in myfile.exe (NTDLL.DLL):0XC0000005:Acc
<br>内容:我用MFC编写了一段基于对话框的命令按钮,按钮按下后对数组数据进行处理的程序:<BR>void CDprocess::Fft(double Xc[],double Xs[],int N, int Inv)<BR>{<BR> double M = log(N) / log(2) + 0.1;<BR> int NV2 = N / 2;<BR> int NM1 = N - 1;<BR> int J = 1;<BR> double Tc;<BR> double Ts;<BR> int k;<BR>for(int I=1;I<=NM1;I++)<BR>{ <BR> if(I<J) <BR> {<BR> Tc = Xc[J];<BR> Ts = Xs[J];<BR> Xc[J] = Xc[I];<BR> Xs[J]= Xs[I];<BR> Xc[I]= Tc;<BR> Xs[I] = Ts;<BR> }<BR> k=NV2;<BR> while(k<J)<BR> {<BR> J=J-k;<BR> k=k/2;<BR> }<BR> J = J + k;<BR>}<BR>double Pi=3.14159265358579;<BR>int LE,LE1,IP;<BR>double Uc,Us,Wc,Ws,Uc1;<BR>for(int L=1;L<=M;L++)<BR>{<BR> LE = 2 ^ L;<BR> LE1 = LE / 2;<BR> Uc = 1.0;<BR> Us =0.0;<BR> Wc = cos(Pi/LE1);<BR> Ws = -sin(Pi/LE1);<BR> if(Inv!=0)<BR> {<BR> Ws=-Ws;<BR> }<BR> for(J=1;J<=LE1;J++) <BR> { <BR> for(I=J;J<=N;I+=LE)<BR> {<BR> IP = I + LE1;<BR> Tc = Xc[IP] * Uc - Xs[IP] * Us; //problem!!<BR> Ts = Xs[IP] * Uc + Xc[IP] * Us;<BR> Xc[IP]=Xc[I]-Tc;<BR> Xs[IP]=Xs[I]-Ts;<BR> Xc[I]=Xc[I]+Tc;<BR> Xs[I]=Xs[I]+Ts;<BR> }<BR> Uc1 = Uc * Wc - Us * Ws;<BR> Us = Us * Wc + Uc * Ws;<BR> Uc = Uc1;<BR> }<BR>}<BR> if(Inv!=0) <BR> {<BR> for(int I=1;I<=N;I++)<BR> {<BR> Xc[I] = Xc[I]/N;<BR> Xs[I] = Xs[I]/N;<BR> }<BR> }<BR>return;<BR>}<BR><BR><BR>在运行时,可以通过编译,但是对话框不知道为何消失。<BR>另外在调试时,却出现Unhandled Exception in myfile.exe (NTDLL.DLL):0XC0000005:Access Violation!消息提示对话框,<BR>此时光标停在:77F61769 Push esi 处。 <BR> <BR><BR><BR>另外在调试窗口出现:<BR>Loaded 'ntdll.dll', no matching symbolic information found.<BR>..................<BR>The thread 0x5B8 has exited with code 1 (0x1).<BR>First-chance exception in wave.exe: 0xC0000005: Access Violation.<BR>First-chance exception in wave.exe (NTDLL.DLL): 0xC0000005: Access Violation.<BR>请各位专家、朋友,帮个忙看一下错误的原因,应该如何改正!<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>回复者:ArthurTu 回复日期:2003-04-30 12:21:48
<br>内容:很可能是越界了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:林建华 回复日期:2003-04-30 19:29:19
<br>内容: 发表于 2003-4-30 11:39:12 [200分] <BR>--------------------------------------------------------------------------------<BR><BR>我用MFC编写了一段基于对话框的命令按钮,按钮按下后对数组数据进行处理的程序:<BR>void CDprocess::Fft(double Xc[],double Xs[],int N, int Inv)<BR>{<BR> double M = log(N) / log(2) + 0.1;<BR> int NV2 = N / 2;<BR> int NM1 = N - 1;<BR> int J = 1;<BR> double Tc;<BR> double Ts;<BR> int k;<BR>for(int I=1;I<=NM1;I++)<BR>{ <BR> if(I<J) <BR> {<BR> Tc = Xc[J];<BR> Ts = Xs[J];<BR> Xc[J] = Xc[I];<BR> Xs[J]= Xs[I];<BR> Xc[I]= Tc;<BR> Xs[I] = Ts;<BR> }<BR> k=NV2;<BR> while(k<J)<BR> {<BR> J=J-k;<BR> k=k/2;<BR> }<BR> J = J + k;<BR>}<BR>double Pi=3.14159265358579;<BR>int LE,LE1,IP;<BR>double Uc,Us,Wc,Ws,Uc1;<BR>for(int L=1;L<=M;L++)<BR>{<BR> LE = 2 ^ L;<BR> LE1 = LE / 2;<BR> Uc = 1.0;<BR> Us =0.0;<BR> Wc = cos(Pi/LE1);<BR> Ws = -sin(Pi/LE1);<BR> if(Inv!=0)<BR> {<BR> Ws=-Ws;<BR> }<BR> for(J=1;J<=LE1;J++) <BR> { <BR> for(I=J;J<=N;I+=LE)//I<=N<BR> {<BR> IP = I + LE1;<BR> Tc = Xc[IP] * Uc - Xs[IP] * Us; //problem!!<BR> Ts = Xs[IP] * Uc + Xc[IP] * Us;<BR> Xc[IP]=Xc[I]-Tc;<BR> Xs[IP]=Xs[I]-Ts;<BR> Xc[I]=Xc[I]+Tc;<BR> Xs[I]=Xs[I]+Ts;<BR> }<BR> Uc1 = Uc * Wc - Us * Ws;<BR> Us = Us * Wc + Uc * Ws;<BR> Uc = Uc1;<BR> }<BR>}<BR> if(Inv!=0) <BR> {<BR> for(int I=1;I<=N;I++)<BR> {<BR> Xc[I] = Xc[I]/N;<BR> Xs[I] = Xs[I]/N;<BR> }<BR> }<BR>return;<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 + -