编译工具一般自带编译生成库文件的功能,VS生成静态库用的工具是Ebuilder。
首先写一个c程序,包含.h头文件和.c文件:
des.h:
#ifndef DES_H
#define DES_H
#include
#include
//B.DES/3DES加密示例代码
int PubEncrypt_DbqCheckNum(const char *str);
// C.DES/3DES解密示例代码
int PubDecrypt_DbqCheckNum(const char *str);
// 获取动态库程序版本
void PubGetDbqCheckNumVersion(unsigned char* data_out);
#endif
这个头文件里面拥有三个接口函数,头文件导入了两个VS自己的API文件Stdio.h、String.h。
des.c:
#include "des.h"
#define CHECKNUM_VERSION "LIB_DBQ20180321"
void PubGetDbqCheckNumVersion(unsigned char* data_out)
{
strcpy(data_out, CHECKNUM_VERSION);
}
int PubEncrypt_DbqCheckNum(const char *str){
return 0;
}
int PubDecrypt_DbqCheckNum(const char *str){
return 0;
}
这部分是静态库逻辑实现。
步骤:
1、选择Make * bin/* .a/* lib file;
2、选择Static Library;
3、点加好“+”,选择要编译的.c文件;
4、编译的源码所依赖的库文件所在目录,前面des.h中导入了String.h、Stdio.h,这些文件以及其对应的.c文件所在路径需要导入(我这里分别是“C:\PaxPayPro2014\lib”和“C:\PaxPayPro2014\include”);
5、编译生成的静态库的命名;
6,、编译所生成的文件的输出路径;
7、以上设置好了,可以点击Builder生成静态库。
在项目代码中使用:
PubGetDbqCheckNumVersion(buf);
disp_string(buf,2,MIDDLE,0,1);
设置完成后点击Build按钮完成编译。
接着就是下载程序和运行了(步骤省略),我是放在POS上运行,结果如下:
这就ok了。