VS2005下CxIMage驗證碼讀取
作者:佚名 時間:2012-11-18 分享到:
1首先我們要確定在程序中是希望靜態鏈接還是動態鏈接,在這里我建議大家使用動態鏈接,因為這個庫有點大,如果使用靜態鏈接的話你的應用程序體積會額外增加1MB多。
2。然后確定在MFC中使用還是在CRT環境中使用,這個庫專門為你建了這兩個工程來創建不同環境中使用的運行時庫,跟據你的需求來選擇編譯CxImageCrtDll還是CxImageMfcDll工程,如果你希望使用靜態庫鏈接的話除了這兩個工程不需要編譯其它的工程都需要編譯。并且在引用這個靜態庫的時候要把這些所有編譯過的工程里的*.lib全部拷到你的程里去。
以靜態鏈接為例:
1、編譯完工程后,將以下文件拷到你建立的工程里去
先將頭文件拷到你的工程里新建文件夾的include去:
xfile.h、ximacfg.h、ximadef.h、ximage.h、xiofile.h、xmemfile.h,
使用靜態鏈接需要拷以下文件到新建的文件夾lib中去:
cximage.lib、png.lib、Jpeg.lib、jbig.lib、Tiff.lib、libdcr.lib、jasper.lib、zlib.lib、mng.lib
2、在你的工程里引用這個庫,添加頭文件和庫文件
#include "../include/ximage.h"
#pragma comment(lib, "../lib/cximage.lib")
#pragma comment(lib, "../lib/png.lib")
#pragma comment(lib, "../lib/cximagecrt.lib")
#pragma comment(lib, "../lib/libdcr.lib")
#pragma comment(lib, "../lib/jasper.lib")
#pragma comment(lib, "../lib/jbig.lib")
#pragma comment(lib, "../lib/Jpeg.lib")
#pragma comment(lib, "../lib/mng.lib")
#pragma comment(lib, "../lib/libdcr.lib")
#pragma comment(lib, "../lib/Tiff.lib")
#pragma comment(lib, "../lib/zlib.lib")
如果是靜態鏈接拷過來的那些*.lib文件全部要引用進去否則無法鏈接,
在這里有人可能會問既然只包含了"ximage.h"這一個頭文件為什么要拷那么多頭文件過來呢?
這是因為"ximage.h"這個頭文件依賴那幾個頭文件所以必須拷過來。
3配置vs2005
在 項目->屬性->配置屬性->常規
MFC使用: 在共享DLL中使用MFC
字符集: 使用多字節字符集
在項目->屬性->配置屬性->C/C++->代碼生成
運行時庫 : /MD
預編譯頭:不使用預編譯頭
4使用過程
以顯示一張PNG圖像為例
新建一個mfc工程CxImageDemo,然后再CxImageDemoView.cpp中的OnDraw(CDC *pDC)函數中添加:
CxImage image; // 定義一個CxImage對象
image.Load(_T("../data/demo.png"), CXIMAGE_FORMAT_PNG); // 加載一幅png圖片,圖片路徑自己更改
image.Draw(pDC->GetSafeHdc(), 0, 0);