最近看了加密解密三中的密码学一章,对其中的RSA我进行了实验,用下载的光盘里的src编译之后可以得到exe,但是我自己写一个工程,然后使用miracl库,编译器却告诉我error LNK2019: 无法解析的外部符号 我已经在代码中加了#pragma comment( lib,"ms32.lib"),而且把那两个.h和那个.lib放在了文件夹下,为什么会出这种错误呢?????我编译光盘中的src是好使的,但我自己的程序为什么不好使呢??
求解答....
附上部分源码
#include "miracl.h"
#include "mirdef.h"
#pragma comment( lib,"ms32.lib")
............
............
............
BOOL CGetHardWareIDDlg::Decry()
{
char * Result = m_Result.GetBuffer();
char * Code = m_Code.GetBuffer();
big n,e,c,m;
miracl *mip=mirsys(100,0);
mip->IOBASE = 16;
c=mirvar(0); // MIRACL的大数类型
n=mirvar(0);
e=mirvar(0);
m=mirvar(0);
cinstr(m,Code);
cinstr(n,"AD45A7FB2FD39557BF690F3E230ECDB52AA90BBFAD7F21AD490C9B432DBB08FF6D900D9B2F50BEA69D9D5FA364FCF537998CF07ECEFA35F83EE3CB60BB5914ABCAFFB114605B6EF3EF2110C2AC5DCBBEB3417AE3D791CBABF32064B39BCD0318E19538FD4DF41B9AB143CDAB57F6AACC3BD6B7EDD12579FDFCB21D15DA2560ED"); // 初始化模数n
cinstr(e,"10001"); // 初始化私钥e
if (compare(m,n) == -1)
{
powmod(m,e,n,c);
big_to_bytes(0,c,Code,0);
if (lstrcmp(Result,Code)!=0)
{
MessageBox("AAA");
return TRUE;
}
else
return FALSE;
}
else
return FALSE;
}
附上错误
1>GetHardWareIDDlg.obj : error LNK2019: 无法解析的外部符号 "int __cdecl big_to_bytes(int,struct bigtype *,char *,int)" (?big_to_bytes@@YAHHPAUbigtype@@PADH@Z),该符号在函数 "public: int __thiscall CGetHardWareIDDlg::Decry(void)" (?Decry@CGetHardWareIDDlg@@QAEHXZ) 中被引用
1>GetHardWareIDDlg.obj : error LNK2019: 无法解析的外部符号 "void __cdecl powmod(struct bigtype *,struct bigtype *,struct bigtype *,struct bigtype *)" (?powmod@@YAXPAUbigtype@@000@Z),该符号在函数 "public: int __thiscall CGetHardWareIDDlg::Decry(void)" (?Decry@CGetHardWareIDDlg@@QAEHXZ) 中被引用
1>GetHardWareIDDlg.obj : error LNK2019: 无法解析的外部符号 "int __cdecl compare(struct bigtype *,struct bigtype *)" (?compare@@YAHPAUbigtype@@0@Z),该符号在函数 "public: int __thiscall CGetHardWareIDDlg::Decry(void)" (?Decry@CGetHardWareIDDlg@@QAEHXZ) 中被引用
1>GetHardWareIDDlg.obj : error LNK2019: 无法解析的外部符号 "int __cdecl cinstr(struct bigtype *,char *)" (?cinstr@@YAHPAUbigtype@@PAD@Z),该符号在函数 "public: int __thiscall CGetHardWareIDDlg::Decry(void)" (?Decry@CGetHardWareIDDlg@@QAEHXZ) 中被引用
1>GetHardWareIDDlg.obj : error LNK2019: 无法解析的外部符号 "struct bigtype * __cdecl mirvar(int)" (?mirvar@@YAPAUbigtype@@H@Z),该符号在函数 "public: int __thiscall CGetHardWareIDDlg::Decry(void)" (?Decry@CGetHardWareIDDlg@@QAEHXZ) 中被引用
1>GetHardWareIDDlg.obj : error LNK2019: 无法解析的外部符号 "struct miracl * __cdecl mirsys(int,unsigned int)" (?mirsys@@YAPAUmiracl@@HI@Z),该符号在函数 "public: int __thiscall CGetHardWareIDDlg::Decry(void)" (?Decry@CGetHardWareIDDlg@@QAEHXZ) 中被引用
1>D:\VC\GetHardWareID\Debug\GetHardWareID.exe : fatal error LNK1120: 6 个无法解析的外部命令
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)