c代码部分封装为lib
需求:将一个C工程中的核心代码封装为静态文件:lib。
环境
工具:VC6.0++
语言:c
以封装一个DES工程为例
封装
(1)新建一个静态工程

(2)新建c文件和h文件



(3)挑选封装内容
在原DES项目中,挑选合适的函数或者结构体:

(4)写入c文件和h文件


编译生成lib文件,并将lib和h文件复制到原DES项目中!
(5)修改原DES源文件
添加引用:

(6)运行即可,封装成功
注意:封装的部分谨慎选择!
程序
框架
#include<stdlib.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
void main(void)
{
unsigned long long local_date = 0;
// char timeStr[14];
unsigned long long set_date = 20230423;
time_t timer;
struct tm *tblock;
time(&timer);
tblock = gmtime(&timer);
local_date = (tblock->tm_year+1900)*100;
local_date = (local_date+tblock->tm_mon+1)*100;
local_date = (local_date+tblock->tm_mday);
if (local_date < set_date)
{
printf("正常使用,输入正常的代码\n ");
}
else
{
printf("请申请软件升级,联系张经理:******\n ");
}
}
引用
#include "aes.h"
#pragma comment(lib,"AES_lib.lib")
//放在截取代码的声明后
c代码部分封装为lib的更多相关文章
- iOS开发学习--纯代码 UIScrollView 无限循环的实现——代码类封装
一个简单的利用UIScrollView 实现的无线滚动banner,下面的代码实现,因为封装问题,对两个及一下的view 支持出了一点问题(view是传参进来的,不可以生成两份),但是原理是正确的,智 ...
- 使用Facebook开源代码FBShimmering封装进度显示的ShimmeCircleView
使用Facebook开源代码FBShimmering封装进度显示的ShimmeCircleView 效果图: 静态图: 源码: ShimmeCircleView.h 与 ShimmeCircleVie ...
- 示例:WPF中自定义StoryBoarService在代码中封装StoryBoard、Animation用于简化动画编写
原文:示例:WPF中自定义StoryBoarService在代码中封装StoryBoard.Animation用于简化动画编写 一.目的:通过对StoryBoard和Animation的封装来简化动画 ...
- bmp格式图像的读写函数(对一个开源代码的封装)
在网上看到一段读写bmp格式图像的代码,本文对这段代码分成两个函数封装起来方便使用,一个函数是读取bmp格式的图像,一个是向指定文件写入bmp格式的图像. 前提 我们不需要知道这段代码是如何读取bmp ...
- unity 代码C#封装为dll
1 Visual studio软件打开后创建一个项目 2并选择类库类型 3编写简单的代码看看效果(发现会报错),主要是没有添加类库,以及using UnityEngine;引用空间 4添加类库,引用 ...
- java:构造方法:无参构造/有参构造 this static关键字 静态变量 静态方法 代码块 封装 静态常量。
/*构造方法是一种特殊的方法,专门用于构造/实例化对象,形式:[修饰符] 类名(){ }构造方法根据是否有参数分为无参构造和有参构造*/public class Dog { ...
- Java代码实现封装多级树结构对象
前言: 在开发中,我们经常见到,前端展示树状结构的,这时候就需要后端去封装一个多级树结构对象,前端根据这样结构的数据去渲染数据,这篇文章讲的是如何封装成多级树结构对象. 正文: 1.先封装个树结构的对 ...
- 在ASP.NET里实现计算器代码的封装
一.具体代码 Default2.aspx.cs public partial class Chapter1_Default2 : System.Web.UI.Page { protected void ...
- 将自己的类封装为lib的方法
前言: Windows API中所有的函数都包含在dll中,其中有3个最重要的DLL. (1) Kernel32.dll 它包含那些用于管理内存.进程和线程的函数,例如CreateThread函数 ...
- C# 深拷贝的具体代码的封装与调用
先封装下实现方法: public class DeepClone { public static object CopyObject(Object obj) { if (obj == null) { ...
随机推荐
- html中input标签放入小图标
直接上代码 <style type="text/css"> *{ margin: 0; padding: 0; } .box{ width: 200px; positi ...
- 『玩转Streamlit』--图像与媒体组件
Streamlit中的图像与媒体组件,主要是st.image.st.audio和st.video. 它们是专为在Streamlit Web应用程序中嵌入和展示多媒体内容而设计的,这些组件不仅丰富了应用 ...
- The 2024 ICPC Asia East Continent Online Contest (II) K.Match
题面 K.Match 给定长度为 \(n\) 的两个序列 \(a\) 和 \(b\),当且仅当 \(a_i ⊕ b_j ≥ k\) 时,\(a_i\) 与 \(b_j\) 连一条双向边,其中 \(⊕\ ...
- Flink 实战之从 Kafka 到 ES
Flink 实战系列 -- 从 Kafka 到 ES [Flink 实战系列]通过一个个简单的例子,图解分析 Flink 的底层原理. 做个数据搬运工 本例的场景非常常见:消费 Kafka 的数据写入 ...
- 如何制作一个HTML页面的锁屏功能
如果后台一些界面比较敏感,希望主动或者被动的在人员不想暴露信息的情况下加一把锁,就是说避免信息一直在页面上暴露,可以使用"阅后即焚"这种思路,这种思路比较简单,显示了就过几秒删除, ...
- (系列十二)Vue3+.Net8实现用户登录(超详细登录文档)
说明 该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发). 该系统文章,我会尽量说的非常详细,做到不管新手.老手都能看懂. 说明:OverallAuth2 ...
- python之异步任务框架Celery
官网参考: Celery 官网:http://www.celeryproject.org/ Celery 官方文档英文版:http://docs.celeryproject.org/en/latest ...
- 升级Linux内核版本
```shell# 查看内核版本,jw版本ceph默认format=2, 2.x 及之前的的内核版本需手动调整format=1# 4.x之前要关闭object-map fast-diff deep-f ...
- 十、Spring Boot集成Spring Security之HTTP请求授权
目录 前言 一.HTTP请求授权工作原理 二.HTTP请求授权配置 1.添加用户权限 2.配置ExceptionTranslationFilter自定义异常处理器 3.HTTP请求授权配置 三.测试接 ...
- uni-app Vue3项目引入Tailwind CSS
前情 Tailwind CSS 是一个原子类 CSS 框架,它将基础的 CSS 全部拆分为原子级别,同时还补全各种浏览器模式前缀,兼容性也不错.它的工作原理是扫描所有 HTML 文件.JavaScri ...