先給出我當前收集的有用鏈結。
// libharu在git的位址
// libharu的編譯方法
/wiki/installation
// libharu--將2個png儲存為pdf
// libharu和pdflib 兩種寫pdf庫檔案使用心得
// 常見pdf開發庫的討論帖子
1. zlib資料夾,libpng資料夾,lib資料夾,libharu資料夾
進入libharu資料夾,在vs2010的命令列下執行: nmake script/makefile.msvc_dll
錯誤1:hpdf_streams.c
src\hpdf_streams.c(34) : fatal error c1083: cannot open include file: 'zlib.h':
no such file or directory
辦法:將makefile.msvc_dll裡面的「cflags=/md -nologo -o2 -iinclude -iwin32\include -i"$(png_prefix)"\include -i"$(zlib_prefix)"\include -dhpdf_dll_make"修改為」cflags=/md -nologo -o2 -iinclude -iwin32\include -i"$(png_prefix)" -i"$(zlib_prefix)" -dhpdf_dll_make「
然後再執行nmake script/makefile.msvc_dll
錯誤2:link : fatal error lnk1181: cannot open input file 'libpng13.lib'
辦法:將makefile.msvc_dll裡面的ldflags= /libpath:$(png_prefix)\lib /libpath:$(zlib_prefix)\lib /libpath:win32\msvc libpng13.lib zlib.lib改為」ldflags= /libpath:$(png_prefix)\lib /libpath:$(zlib_prefix)\lib /libpath:win32\msvc libpngd.lib zlibd.lib「
因為我們編譯的是debug版本,這裡的2個lib為debug版本的。
所以還要將」cflags_demo=/md -nologo -o2 -iinclude -iwin32\include -d__win32__ -dhpdf_dll「改為」cflags_demo=/md -nologo -o2 -iinclude -iwin32\include -d__win32__ -dhpdf_dll -dlibhpdf_debug「
同時開啟libharu\win32\include\hpdf_config.h檔案,將裡面的#undef libhpdf_debug注釋起來.
另外將libpngd.lib和zlibd.lib拷貝到libharu\win32\msvc下面
然後再執行nmake script/makefile.msvc_dll
錯誤3:libhpdf.def : error lnk2001: unresolved external symbol hpdf_3dannot_set3dview
將libharu\win32\msvc\libhpdf.def裡面的hpdf_3dannot_set3dview刪除。
然後再執行nmake script/makefile.msvc_dll
這樣會在libharu下面生成libhpdfd.dll和libhpdfd.lib
編譯release就簡單多了,不需要考慮*d.lib, *d.dll等問題。
Windows訊息機制 1
dos的過程驅動與windows的事件驅動 在講本程式的訊息迴圈之前,我想先談一下dos與windows驅動機制的區別 dos程式主要使用順序的,過程驅動的程式設計方法。順序的,過程驅動的程式有乙個明顯的開始,明顯的過程及乙個明顯的結束,因此程式能直接控制程式事件或過程的順序。雖然在順序的過程驅動的...
windows驅動入門 1
1.搭建編譯環境 1 安裝編譯器 vc6.0或vc2003 vc2005等。2 安裝驅動開發工具包ddk driver development kits 下找到你要的目標平台。注意 這裡的版本指的是將要執行你編譯的驅動的機器作業系統版本,與你自己現在執行作業系統版本無關。2.編寫第乙個驅動 hell...
windows記憶體結構 1
作業系統使用的記憶體結構是理解作業系統如何執行的重要關鍵 建立程序時,系統會賦予程序4gb的虛擬空間位址 32位 16eb的虛擬空間 64位 32位從0x00000000 0xffffffff,64位從0x0000000000000000 0xffffffffffffffff 需要注意的是虛擬兩個字...