CxImage下載地址:http://www.codeproject.com/Articles/1300/CxImage
沒有ID的直接註冊一下就可以下載,免費的。
解壓後,用VS2005打開 CxImgLib.dsw
可以看到下例這些工程:
- CxImage
- CxImageCrtDll
- CxImageMfcDll
- dome
- domeDll
- jasper
- jbig
- jpeg
- libdcr
- mng
- png
- tiff
- zlib
先編譯CxImage,成功後再編譯第二個工程。
分別在Debug和Release下編譯,然後把編譯產生的lib文件copy 到一個文件夾下,我的是文件夾是D:\softwares\CxImage\lib\debgu:和D:\softwares\CxImage\lib\release。
由於我用的MFC無關的工程,所以沒有編譯CxImageMfcDll。
打開工程後:
工具->選項->項目和解決方案->VC++目錄
庫文件:添加D:\softwares\CxImage\lib\debgu和D:\softwares\CxImage\lib\release
包含文件:添加D:\softwares\CxImage
確定後,在項目上右鍵項目屬性->配置屬性->鏈接器->輸入->附加依賴項:
添加cximage.lib jpeg.lib png.lib mng.lib tiff.lib jasper.lib jbig.lib zlib.lib libdcr.lib
點擊應用後在 配置屬性->常規
MFC使用:在共享DLL中使用MFC
字符集: 使用多字節字符集
配置屬性->C/C++->代碼生成
運行時庫:多線程 DLL (/MD)
結構成員對齊:16字節
預編譯頭:不使用預編譯頭
設置好後,編輯沒有問題,添加上 #include "ximage.h'
編譯後錯誤,無法找到ximage.h
沒有辦法,又把cximage文件夾中的所有.h頭文件都添加到工程
編譯後報錯
1>cx_image.cpp
1>f:\cx_image\cx_image\xiofile.h(25) : warning C4996: “fopen”被聲明爲否決的
1> d:\program files\microsoft visual studio 8\vc\include\stdio.h(234) : 參見“fopen”的聲明
1> 消息:“This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.”
1>f:\cx_image\cx_image\xiofile.h(117) : warning C4996: “fscanf”被聲明爲否決的
1> d:\program files\microsoft visual studio 8\vc\include\stdio.h(249) : 參見“fscanf”的聲明
1> 消息:“This function or variable may be unsafe. Consider using fscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.”
1>正在鏈接...
1> 正在創建庫 F:\cx_image\Debug\cx_image.lib 和對象 F:\cx_image\Debug\cx_image.exp
1>LINK : warning LNK4098: 默認庫“MSVCRTD”與其他庫的使用衝突;請使用 /NODEFAULTLIB:library
1>cximage.lib(ximasel.obj) : error LNK2019: 無法解析的外部符號
__imp__DeleteObject@4,該符號在函數 "public: bool __thiscall CxImage::SelectionToHRGN(struct HRGN__ * &)" (?SelectionToHRGN@CxImage@@QAE_NAAPAUHRGN__@@@Z) 中被引用
1>cximage.lib(ximasel.obj) : error LNK2019: 無法解析的外部符號
__imp__CombineRgn@16,該符號在函數 "public: bool __thiscall CxImage::SelectionToHRGN(struct HRGN__ * &)" (?SelectionToHRGN@CxImage@@QAE_NAAPAUHRGN__@@@Z) 中被引用
1>cximage.lib(ximasel.obj) : error LNK2019: 無法解析的外部符號
__imp__CreateRectRgn@16,該符號在函數 "public: bool __thiscall CxImage::SelectionToHRGN(struct HRGN__ * &)" (?SelectionToHRGN@CxImage@@QAE_NAAPAUHRGN__@@@Z) 中被引用
1>F:\cx_image\Debug\cx_image.exe : fatal error LNK1120: 3 個無法解析的外部命令
1>生成日誌保存在“file://f:\cx_image\cx_image\Debug\BuildLog.htm”
1>cx_image - 4 個錯誤,3 個警告
對於前兩個warning,在屬性->配置屬性->C/C++->命令行:添加 /D "_CRT_SECURE_NO_DEPRECATE"
第三個warning,在屬性->配置屬性->鏈接器->命令行:添加
/NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib
/NODEFAULTLIB:msvcrtd.lib
後面四個error,在屬性->配置屬性->鏈接器->輸入->附加依賴項:再添加上gdi32.lib,user32.lib
好了,編譯後再沒有問題,可以編程了