这次写有关调用OpenSSL大整数函数的东西的确走了不少弯路,明白了一句话,不要觉得自己的程序是完全正确的,尤其是像我现在的这种起步水平,给刚开始写又想走的快点的朋友们一个小小的建议,在写完之后,尤其是自己不太熟悉的函数语句的时候,编译运行出错改错一个方面(也不要太迷信vc的差错本领,我这次就栽在这上面),
还有就是如果你程序本身函数使用错误的话vc给出的error也是不对的,所以直接拿本身就不对的错误搜解决方案根本就是在做无用功,所以要对照函数原型看看到底是不是你需要的函数有没有用错(很重要我要是能静下心来想想这个不至于花这么长时间)。
void CPracticeDlg::On_plus_Button1()
{
// TODO: Add your control notification handler code here
CString str1,str2,str3;
char *p=NULL;
char *p1,*p2;
BIGNUM *new1=BN_new(); //注意变量声明
BIGNUM *new2=BN_new();
BIGNUM *re=BN_new();
GetDlgItemText(IDC_EDIT1,str1);
GetDlgItemText(IDC_EDIT2,str2);
p1=(LPSTR)(LPCTSTR)str1;
p2=(LPSTR)(LPCTSTR)str2;
BN_dec2bn(&new1, p1);
BN_dec2bn(&new2, p2);
BN_add(re,new1,new2); //将两个数相加
BN_free (new1);BN_free(new2);
p=BN_bn2dec(re); //转化为10进制字符串,返回一个字符串指针
BN_free (re);
SetDlgItemText(IDC_EDIT3,p);
OPENSSL_free(p); //及时释放空间优化内存
}
这是bignum函数的用法比较齐全的。非常感谢!要不是有这个绝对晕菜
http://blog.csdn.net/wjj1987/article/details/6445092
阅读(793) | 评论(0) | 转发(0) |