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) 展开
我在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) 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询