我在这里测试所用的是VS2010新建的一个MFC的程序,通过点击按钮来做图片的相关处理。
对于像cximage这样的第三方库,我们一般都会包含头文件(*.h),静态库文件(*.lib)和动态库文件(*.dll)。
1. 文件位置:为了提高程序的可移植性,将第三库放在解决方案(*.sln)或者工程(*.vcxproj)文件所在的文件夹下。而不要放在其他地方,比如放在D:\某个位置,这样的话,程序在别的电脑上可能就无法运行了。
2. 头文件:在工程属性->VC++目录->包含目录中添加头文件目录 ; 使用相对路径添加。
3. 静态库文件:在工程属性->VC++目录->库目录中添加库文件目录;使用相对路径添加。
4. 链接库配置:在工程属性->链接器->输入->附加的依赖项;将相关的lib文件名写入即可。
5. 动态库配置:将所需的dll文件放在对应的realease和debug的文件夹下或者直接将dll文件放在工程文件夹下。
接下来看实例:
在新建好的工程文件的头文件那里将我们需要的xImage.h添加进去,这个里面有好多函数我们可以查找你可以在我的另外一篇博客里面看到:https://blog.csdn.net/Alan_Program/article/details/94007512
接下来我们添加头文件:
右键点击项目进入属性界面,选中VC++目录,你会看到一个包含目录,在右边你可以编辑相对路径,为什么我们要编辑相对路径,因为如果换了一台电脑,而你用的是绝对路径,不同的人电脑上放的文件位置也不可能一直一样,就会报错。
相对路径我们可以用宏来替代。
项目=》属性=》配置属性=》vc++目录=》包含目录
你点击宏就会发现里面有好多宏以及对应的变量,比如下面红框的例子
我们选中宏代替的路径变量后,可以用’.‘或者’. .'来切换文件夹,前者是当前目录,后者是上一层目录。
接下来添加静态库文件:
首先在这里添加静态库所在的文件夹的相对路径,方法和上面一样。
项目=》属性=》配置属性=》vc++目录=》库目录
接下来就来添加静态库:
直接在下面添加静态库文件即可:
项目=》属性=》配置属性=》链接器=》输入=》附加依赖项
最后我们来添加dll,最简单的方法是将我们需要的dll文件拷到当前项目所在目录下,如:
接下来准备工作做好了
你可以在该控件下写相应的代码去处理图片
以这个为例:
void CMergePicturesDemoDlg::OnBnClickedBtnMergepic()
{
// TODO: 在此添加控件通知处理程序代码
CxImage img;
DWORD height;
DWORD width;
//加载图片
img.Load("1.TIF",CXIMAGE_FORMAT_TIF);
if(img.IsValid())
{
height = img.GetHeight();
width = img.GetWidth();
}
HBITMAP htif = img.MakeBitmap();
HWND hwnd = GetSafeHwnd();
HDC hdc = ::GetDC(hwnd);
HDC hdcMem = ::CreateCompatibleDC(hdc);
SelectObject(hdcMem, htif);
RECT rc = {0, 0, 4*width, height};
SetBkMode(hdcMem, TRANSPARENT);
DrawText(hdcMem, "Hello World.", -1, &rc, DT_VCENTER);
CxImage imgtif;
imgtif.CreateFromHBITMAP(htif);
imgtif.Save("tif.tif", CXIMAGE_FORMAT_TIF);
::ReleaseDC(hwnd, hdc);
::DeleteDC(hdcMem);
::DeleteDC(hdc);
}
本人之前在用初用VS的时候对于这些配置都是很模糊的,感觉好麻烦记不住,调式又不会解决,所以就从简单做起,不积跬步无以至千里,希望从一个菜鸟慢慢成长。