《捕捉桌面存成jpg案例代码》调试中的注意事项
在前面发的《捕捉当前桌面存成jpg案例代码》中,只有几个函数的代码,没有说明在调试过程中需要注意的地方。
一、关于libjpeg库
安装方法:
访问 libjpeg-turbo 官方下载页,选择适合你的VS的版本:
如果是32位(x86)项目,下载 libjpeg-turbo-<版本>-vc<VS版本>-x86.exe
(如 libjpeg-turbo-2.1.5.1-vc64.exe)
如果是64位(x64)项目,下载 libjpeg-turbo-<版本>-vc<VS版本>-x64.exe
运行安装程序,选择一个路径(如C:\libjpeg-turbo),并记住它。
二、配置VS项目(以VS2022为例)
步骤1:设置包含目录(头文件)
右键你的项目→属性→选择C/C++ →常规→在附加包含目录添加:C:\libjpeg-turbo64\include (以你的实际路径为准)
步骤2:设置库目录(lib文件)继续在属性窗口 选择:链接器→常规→在附加库目录 添加: C:\libjpeg-turbo64\lib(也以你的实际为准)
步骤3:添加libjpeg.lib依赖 选择:链接器→输入 在附加依赖项 添加:libjpeg.lib(也可能需要libjpeg-static.lib)
步骤 4(可选):处理动态库(DLL)如果你使用的是动态库(jpeg62.dll),需要:
将 C:\libjpeg-turbo\bin\jpeg62.dll 复制到:你的项目 Debug\ 或 Release\目录,或者系统的 C:\Windows\System32\(不推荐,仅测试用)
三、VS中注意的问题,在对话框头文件中包含头文件时不要仅包含一个<jpeglib.h>头文件。我这里是包含了三个:<jpeglib.h>、<jmorecfg.h>、<jerror.h>,否则关于压缩部分的代码会出现编译通过但不能正常运行的问题。
四、代码中使用了char*类型的指针变量,所以项目的字符集要选择使用多字节字符集;另外,也要选择“在静态库中使用MFC”。我在使用动态库时遇到正常运行与不能运行交替出现的情况,原因我还没弄清楚,对此了解的朋友可告诉一下。