关于MFC如何制作加密软件

由于我要使用的是老师提供好的加密算法,老师是用VS2005编写的加密函数,并把它做成了encFunc.h和encFunc.lib文件。而我是在VS2008环境下制作加密软件的,所以在加密后期程序运行过程中涉及到了一些版本不兼容问题。

 

第一步:在主对话框之外,新建一个注册对话框,添加相应的控件,然后为对话框添加类。步骤为:右键对话框-》添加类-》输入类名为CRegistryDialog

然后为各种控件添加对应的函数

 

第二步:导入encFunc.lib库文件及其他

在需要使用加密函数的文件中添加encFunc.h 和encFunc.lib文件。

使用encFunc.lib时候,应该把它放在外面的一个Debug文件夹下,并且在项目-》链接器-》输入依赖项中,添加encFunc.lib。然后在.h.cpp文件中,使用#pragma comment( lib, "..\\debug\\encfunc.lib" )来添加使用。这样可以解决fatal error LNK1104: 无法打开文件“..\debug\encFunc.lib”错误。

由于使用的encFunc.lib是vs2005环境下生成的。导入进VS2008后,需要VS2005库文件支持,可以通过设置项目-》属性-》链接器常规选项附加库目录来添加VS2005的库文件。一般为 2005\VC\altmfc\lib

 

第三步:在主线程App类的初始化函数InitInstance()中,添加校验函数,来检测软件是否注册过。

我的函数如下:

//软件注册检验
 bool bRet;
 bRet = checkRegistry();
 if(!bRet)
 {
  RegistrySuccess=false;
  if(AfxMessageBox("请先注册再使用本软件,现在注册?",MB_YESNO)==IDYES)
  {
            CRegistryDialog redlg;
            redlg.DoModal();
   if(RegistrySuccess==false)
   {
    return false;
   }
  }
  else
  {
      return false;
  }
 }

其中,RegistrySuccess是个全局变量。我们在Stadfx.cpp中定义它 bool RegistrySuccess;然后在我们需要使用到它的文件中再次定义它,extern bool RegistrySuccess.

checkRegistry()函数是encFunc.h和encFunc.lib定义好的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值