Visual Studio编译7z源代码
源代码下载
打开地址https://www.7-zip.org/download.html,选择源码下载,可以选择自己需要的版本下载
7z.dll编译
1:解压源代码包,打开vs解决方案,CPP7zipBundlesFormat7zFFormat7z.dsw,vs会提示升级,不用管,选择升级。
2:修改7z.dll的输出路径到自己喜欢的路径,原默认是C:Program Files7-Zip7z.dll,由于输出在C盘,经常会由于权限问题导致编译失败,比如修改到:D:Program Files7-Zip7z.dll
3:修改文件7zCrcOpt.asm、AesOpt.asm的工程属性,$(InputName)改为%(FileName),因为$(InputName)在一些VS下是无效的,如图:
4:如果编译报错如下:
打开工程配置,链接器->命令行,配入:/SAFESEH:NO
7zFM.exe编译
1:解压源代码包,打开vs解决方案,CPP7zipBundlesFmFM.dsw,vs会提示升级,不用管,选择升级。
2:修改7zFM.exe的输出路径到自己喜欢的路径,原默认是C:Program Files7-Zip7zFM.exe,由于输出在C盘,经常会由于权限问题导致编译失败,比如修改到:D:Program Files7-Zip7zFM.exe
3:如果编译报错为,error C2440: “return”: 无法从“const char [6]”转换为“AString”
打开工程配置,选择编译DebugU和ReleaseU,修改字符编码集为unicode字符集
4:如果编译报错为,1>CVTRES : fatal error CVT1100: 资源重复。类型: MANIFEST,名称: 1,语言: 0x0409,1>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
这是因为资源重复导入导致的,打开Cpp7zipUIFileManager esource.rc,找到第140,141,142行直接删掉就行了