最近在跟同事合作编写一个软件,是一个多进程软件,同事负责写HMI(界面)进程,我负责写COMM(通信)进程。HMI提供对共享内存的读写接口,COMM和HMI都是用这个接口对共享内存进行度写的。
    我的COMM工程要用到HMI工程提供的接口函数,这时有两个选择:
    1.将HMI工程中相关的文件复制到COMM工程中,进行编译。这种做法带来的一个坏处就是,每当HMI工程对这些接口函数进行更新,COMM工程都必须重新拷贝代码,整合,编译出新的可执行文件,非常不方便。
    2.生成库文件。由HMI设计者建立一个新的动态链接库DLL工程,将接口相关代码拷贝到DLL工程中,生成一个DLL库文件。COMM工程将DLL工程 生成的.dll文件.lib文件以及.h文件拷到工程目录下。在Project-->Settings-->Link的 Object/library modules中加入.lib文件名,并在需要的地方引入.h头文件。这样HMI项目对接口的实现进行修改后,COMM工程中只须.dll和.lib文件 即可。

通过DLL使两个工程公用部分代码相关推荐

  1. LeetCode简单题之仅执行一次字符串交换能否使两个字符串相等

    题目 给你长度相等的两个字符串 s1 和 s2 .一次 字符串交换 操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符. 如果对 其中一个字符串 执行 最多一次字符串 ...

  2. ACMNO.30 C语言-宏交换 定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。

    题目描述 定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参.输出已交换后的两个值. 输入 两个数,空格隔开 输出 交换后的两个数,空格隔开 样例输入 1 2 样例输出 2 ...

  3. 2n个整数分为两组,使两组和差的绝对值最小

    http://blog.sina.com.cn/s/blog_6f194ed3010114vt.html 最近建模看到作业这个题,一开始想了很久.在网上发现竟然没有完备的算法.不过最后想到一个可以Li ...

  4. 写一个使两个整数进行交换的方法(不能使用临时变量) 【前端每日一题-27】...

    写一个使两个整数进行交换的方法(不能使用临时变量) 这道题是一个比较有意思的题,记录于此. var a=10; var b=20;...不用临时变量让a和b交换console.log(a); cons ...

  5. LeetCode 1790. 仅执行一次字符串交换能否使两个字符串相等

    文章目录 1. 题目 2. 解题 1. 题目 给你长度相等的两个字符串 s1 和 s2 . 一次 字符串交换 操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符. 如 ...

  6. 定时器中断实验 编写程序使定时器0或者定时器1工作在方式2,自动重装载模式,定时500ms使两位数码管从00、01、02……98、99每间隔500ms加1显示。

    编写程序使定时器0或者定时器1工作在方式2,自动重装载模式,定时500ms使两位数码管从00.01.02--98.99每间隔500ms加1显示. 程序: #include <reg51.h> ...

  7. 定时器中断实验 编写程序使定时器0或者定时器1工作在方式1,定时500ms使两位数码管从00、01、02……98、99每间隔500ms加1显示。

    编写程序使定时器0或者定时器1工作在方式1,定时500ms使两位数码管从00.01.02--98.99每间隔500ms加1显示. 程序: #include <reg51.h> #defin ...

  8. 两个构件的重合点_GTJ2018软件中如何合并两个工程?

    不知道大家有没有用GTJ2018软件合并过工程,例如一个工程很着急,领导把一个工程分给了几个人做,有人做地下层,有人做标准层,有人做顶层,最后就需要把这些合并成一个完整的工程.今天就来讲讲GTJ201 ...

  9. 直方图匹配(histogram matching):使两幅影像的色调保持一致

    使用场景: 使用直方图匹配,使两幅图像的色调更一致,是在模型训练之前使用的,是一种数据处理的方式(例如在图像风格转换的时候,那么使用直方图匹配会让源域与目标域的图像色调更接近,从而风格转换的效果更好. ...

最新文章

  1. TensorFlow创建DeepDream网络
  2. 微信小程序打开预览下载的文件
  3. netty io.netty.buffer简介
  4. Effective Java读书笔记三:创建和销毁对象
  5. MySQL使用覆盖索引来优化limit语句
  6. VM安装虚拟机及其破解密码
  7. JavaEE基础(05):过滤器、监听器、拦截器,应用详解
  8. 【Python】Python实战从入门到精通之七 -- 教你深入理解异常处理
  9. 网络安装ubuntu操作系统
  10. 信息系统安全等级保护基本要求_继电保护对电力系统安全运行至关重要,电网对它的基本要求有哪些...
  11. Android ToggleButton(状态切换按钮)
  12. linux pstree(process status tree) 命令详解
  13. Selenium WebDriver控制操作(Python)
  14. c语言文件中获取单词,从文本文件中读取单个单词并翻译 - C
  15. c#语言求两个数最大公约数,C#趣味程序---求两个数的最大公约数和最小公倍数...
  16. 【人脸表情识别】基于matlab GUI微表情识别系统【含Matlab源码 1852期】
  17. .exe文件打开闪退
  18. 如何在html上显示时间设置,如何在网页上显示日期的两种方法
  19. JAVA-关于计算器的简单图形界面设计例子(不实现功能)
  20. i.MX6ULL终结者屏幕背光调节例程程序设计

热门文章

  1. Linux socket 网络编程常用函数总结
  2. android 的view绘制逻辑
  3. SQLite命令行程序说明
  4. Ubuntu 配置大数据平台hadoop hive数据仓库之完整踩坑
  5. C语言 找数码是否存在
  6. Three.js学习笔记 – “我和小伙伴都惊呆了”的特效和Three.js初探
  7. string [线段树优化桶排]
  8. Java基础知识练习02
  9. JAVA中常用IO流类:BufferedReader和BufferedWriter读取文件操作
  10. 20165301 我期望的师生关系