如果你技术高超,用C语言写了一个很厉害的功能,然后想要把这个功能分享或者卖给其他人,但是不想人家看到你的源码,就可以把关键代码给封装(隐藏)起来,这样人家只能使用你的代码实现的功能,但是查看不了你的原代码。本期就带大家一起来学习一下这个操作怎么做到的。
学过C语言的都知道,我们在创建项目的时候,会创建一个“.c”文件,一般情况下,我们把所有的代码都写里面。比如:
这段代码是用来判断某一年(你需要输入一个年份)是否是闰年的。我把判断某一年是否是闰年这个函数封装在③部分了,①部分是③部分的函数声明。而②部分是主函数,你可以放一些无关紧要的(简单的)代码。我这里先举个例子:假设③部分的代码很难,一般人做不出来,你想把它隐藏起来,但是可以让别人调用它的功能,你可以这样操作:
首先,你需要为这个需要隐藏的功能创建一个新的项目,分别添加一个“.c”文件和“.h”文件,这里要记住,不用写main函数,也不用写“#include <****>”这些内容,在项目中新建一个完全空白的“.c”文件和“.h”文件就行。
准备好以后,把上图中的③部分放进“.c”文件中,把①部分拷贝进“.h”文件中,放进去之后全部保存。记住先别急着执行程序,现在程序没有main函数,编译会报错的。
接着在资源管理窗口鼠标右键点击项目名称:
在最下面,点击属性:
在属性中依次操作,把“应用程序”换成“静态库”,点击应用和确定。
这样程序在编译和执行后生成的就是“.lib”静态库文件了。
这个文件在你创建的这个项目文件路径下面(我用方框隐藏的路径不重要,这是我的电脑文件的路径,你找到你自己的项目文件,按照方框后面的路径来就行),此时你的代码隐藏操作完成了,接下来可以进行下一步操作了。
如果你想把这个代码的功能分享给其他人,你只需要把刚刚的“is_leap_year.lib”文件和“is_leap_year.h”文件分享给他人就可以了。而“is_leap_year.h”文件在下面的路径中:
接下来,如果你是被分享的一方,你拿到这个两个文件,该怎么使用呢?请看接下来的操作:
我这里举的例子只有一个“.c”文件,下面这个代码是你自己项目中的一部分,假如你现在不会“is_leap_year”(这个函数是用来判断是否是闰年的)这个功能,需要使用别人分享给你的代码功能。此时你收到别人分享给你的“is_leap_year.lib”文件和“is_leap_year.h”两个文件。
首先,你需要把这两个文件拷贝到你需要用到的项目文件路径下面,具体来说这个路径就是跟你的“.c”文件放在同一个文件夹:
然后你需要添加“is_leap_year.h”文件,打开你的visual studio ,右键点击头文件,依次点击添加,现有项:
把你需要用到的“.h”文件添加进去:
此时你的资源管理器是这样的:
接着在你的“.c”文件中需要包含“is_leap_year.h”这个头文件,格式是:#include “is_leap_year.h”。记住不是这个格式:#include <is_leap_year.h>,这样是会报错的。同时在你的main函数前面添加这句代码:#pragma comment(lib,"is_leap_year.lib")。这句代码是导入静态库的意思,“is_leap_year.lib”是你要导入静态库的名字。详情如下:
按ctrl+f5,运行程序,这样你就可以使用别人分享给你的程序功能了。
至此,所有操作就完成了,这样就实现了,别人可以使用你的代码功能,但是不知道你的程序源码了,实现了代码的隐藏。同时,这是我第一次在CSDN上面发一些教程,如果有讲得疏忽或者不清楚的,请多见谅,也可以评论留言,我看到了就会回复。