MFC编程遇到问题求助大神

求助各路大神。。我在VC6.0上编写MFC程序,我在一个dlg对话框里面加两个按钮控件,设置点击它们会弹出不同的模态对话框(用的dlg.DoModal())。新的对话框有... 求助各路大神。。
我在VC 6.0上编写MFC程序,我在一个dlg对话框里面加两个按钮控件,设置点击它们会弹出不同的模态对话框(用的dlg.DoModal())。新的对话框有自己的编辑框和按钮,我在编辑框输入数据后点击按钮后会在结果编辑框中输出数据,但是我发现一个问题。
我这里想要做的是,点击两个按钮分别弹出一个模逆运算和模幂运算的对话框,我先写模逆的,编译运行,点击按钮,弹出对话框,在编辑框输入数据(运算数和模数),点击按钮,输出数据,结果没问题。接着我写模幂的,但是发现死活就不行了,也不报错,编译能运行,点击按钮,弹出模幂对话框,不管输入什么数据,输出始终都是0,我直接把用于输出结果的那个编辑框嗦绑定的变量人为赋值为一个非0的数,它输出居然还是0。开始我以为是第二个对话框编写函数的时候出了问题,但是又始终检查不出来就全部重新做,这次然后先写模幂的,发现模幂的可以运行了,然后写模逆,但是这次模逆的却出现刚才那个问题了,始终输出为0,感觉它就好像根本没有调用我给按钮写的响应函数一样。
小弟实在很困惑,MFC学得比较肤浅,实在不知道怎么回事了,求助各路大神。以下是我在模逆和模幂对话框中按钮的响应函数。
模逆运算的(用的最普通的扩展欧几里得e_gcd()):
void modinverse::OnButton1()
{
// TODO: Add your control notification handler code here
UpdateData();
double n_result1;
int a=0,b=0;
n_result1=e_gcd(m_mainnum,m_modnum,a,b);
if(n_result1m_modnum)
n_result1=n_result1+m_modnum;
m_result=3/*m_mainnum*/;
char sz[20];
sprintf(sz,"%.0f",m_result);
m_cresult.SetWindowText(sz);
}
模幂运算的(用的快速取模m_e()):
void modpower::OnButton1()
{
// TODO: Add your control notification handler code here
UpdateData();
double n_result;
n_result=m_e(m_mainnum1,m_powernum,m_modnum1);
m_result1=n_result;
char sz[20];
sprintf(sz,"%.0f",m_result1);
m_cresult1.SetWindowText(sz);
}
模逆运算那里n_result=e_gcd()下面那句打错了
应该是if(n_result1<0&&m_mainnum>m_modnum)
展开
 我来答
stoneleafs
2013-11-26 · TA获得超过102个赞
知道小有建树答主
回答量:109
采纳率:0%
帮助的人:108万
展开全部
你在VC中加几个断点,用F5调试下,看看从哪里开始出错的。按道理,你用的SetWindowText来显示,显示方面是不应该错的,错误应该在上面的计算。你可以在调试时看看显示时sz的值,以及m_e等函数的参数有没有问题。这个问题应该比较容易找出来。
追问
试了试调试,这次进到按钮的响应函数了,发现没有问题,然后继续往后追踪到汇编的界面,就不会了,问题应该出在这里。。
追答
你用F11追踪,看是在哪个函数处出的错,想看的数值是不是对的?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式