#blognavi
- [Visual C++]-[Win32]-[Win32 プロジェクト]のプロジェクト(仮にDrawSVG)を作成しておく
- http://ftp.acc.umu.se/pub/gnome/binaries/win32/ から下記のbinアーカイブとdevアーカイブをダウンロード。
見つからなければ「dependencies」も探す。★マークのものは「gtk+-bundle_*_win32.zip」で代用可能- cairo_*_win32.zip ★
- cairo-dev_*_win32.zip ★
- expat_*_win32.zip ★
- fontconfig_*_win32.zip ★
- freetype_*_win32.zip ★
- glib_*_win32.zip ★
- glib-dev_*_win32.zip ★
- gtk+_*_win32.zip ★
- gtk+-dev_*_win32.zip ★
- libcroco_*_win32.zip
- libgsf_*_win32.zip
- libpng_*_win32.zip
- librsvg_*_win32.zip
- librsvg-dev_*_win32.zip
- libxml2_*_win32.zip
- pango_*_win32.zip ★
- zlib_*_win32.zip ★
- 全binアーカイブの「bin」に含まれる全DLLをプロジェクトフォルダに展開
※「gtk+_*_win32.zip」は「libgdk_pixbuf-2.0-0.dll」のみ使用
- 全devアーカイブの「include」以下をプロジェクトフォルダ(.vcxprojのある所)に展開
「glib-dev_*_win32.zip」の「lib/glib-2.0/include/」も「include」として展開
※「gtk+-dev_*_win32.zip」は「include/gtk-2.0/gdk-pixbuf」のみ使用
- 「cairo-dev_*_win32.zip」の「lib/cairo.lib」をプロジェクトフォルダに展開
- http://bellard.org/tcc/ から「tcc-*-win32-bin.zip」をダウンロード
- 「tiny_implib.exe」をプロジェクトフォルダに展開
- VisualStudioコマンドプロンプトを起動
- プロジェクトフォルダに移動し下記コマンドを実行
- > tiny_impdef.exe librsvg-2-2.dll
- > lib.exe /def:librsvg-2-2.def /machine:x86 /out:librsvg-2.2.lib
- プロジェクトの[構成プロパティ]-[C/C++]-[追加のインクルード ディレクトリ]に以下を設定
- .\include
- .\include\cairo
- .\include\librsvg-2\librsvg
- .\include\gtk-2.0
- .\include\glib-2.0
- プロジェクトの[構成プロパティ]-[リンカー]-[入力]-[追加の依存ファイル]に以下を追加
- cairo.lib
- librsvg-2-2.lib
- DrawSVG.cppに以下の修正を加える(本来はWM_PAINTじゃなくて適切な個所で行う)
#include "cairo-win32.h"
#include "cairo-svg.h"
#include "rsvg.h"
#include "rsvg-cairo.h"
(中略)
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: 描画コードをここに追加してください...
RsvgHandle *rsvg;
cairo_surface_t *cr_surface;
cairo_t *cr;
rsvg_init();
rsvg = rsvg_handle_new_from_file("test.svg", NULL);
cr_surface = cairo_win32_surface_create(hdc);
cr = cairo_create(cr_surface);
rsvg_handle_render_cairo(rsvg, cr);
cairo_destroy(cr);
cairo_surface_destroy(cr_surface);
rsvg_handle_free(rsvg);
rsvg_term();
EndPaint(hWnd, &ps);
break;
(以下略)
カテゴリ: [
Program] - &trackback() - 2010年10月18日 11:44:33
#blognavi
最終更新:2010年10月18日 11:46