技术栈:c++基本语法,STL中队列和栈的应用,以及程序打包相关操作
开发工具:vs2019 和部分插件
需求分析:
loading.....
核心算法:逆波兰式的应用
讲解loading....
设计流程:loading.....
代码文件:(具体代码有待改进)
成果展示:
如果缺少vs环境,会出现错误,因此我将项目改为了静态链接,会提供静态库,相应的.dll文件会加入.msi文件中,无须自己添加
点击TT计算器2.0.msi(如果已有vs环境,用setup应该也是可以的)
选择安装目录
安装完成
此时桌面就出现了快捷方式
由于链接库,第一次运行可能会慢一点
安装目录下会有提供的文件:
unstall.exe ----卸载
log.txt -----日志
遇到的问题:QAQ真是不少....
代码实现方面的问题今天暂且不说,时间不足
就写一写打包过程中的问题吧
由于找不到VCRUNTIME140D.dIl,无法继续执行代码。
重新安装程序可能会解决此问题。
为什么会这样呢?原因是VS默认为动态编译。在之前的教程里我们学了静态编译与动态编译的区别,我再把他搬过来:静态编译在程序编译时dll会被连接到目标代码中,程序运行时将不再需要该静态库。动态编译在程序编译时dll并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。我们只需设置为静态编译即可,让dll写进exe内,没有外部库也可以运行。
然后重新编译即可。对于VS来说:静态编译/MT,/MTD 是指使用libc和msvc相关的静态库(lib)。动态编译,/MD,/MDd是指用相应的DLL版本编译。值得注意的是,使用静态编译会让程序变大。
添加卸载程
没有安装卸载程序的话,需要在控制面板所有控制面板项程序和功能下卸载比较麻烦。
所以,
在C盘下搜索系统卸载程序,选择64位,复制到我们工程的Release目录下。
选择msiexec.exe文件,并创建快捷方式
并将其重命名然后移到User's Desktop
点击setup项目,将其属性中的产品码ProductCode后的内容复制下来如:{E9A43663-33ED-4EF6-AB62-E8487863D2FF}
粘贴到untall.exe的Arguments中,并在前面加上"/x ",如/x {E9A43663-33ED-4EF6-AB62-E8487863D2FF},/x和{间有空格!