<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>William C. Yap, Esq.</title>
	<atom:link href="http://www.williamcyap.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.williamcyap.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Mon, 22 Sep 2008 03:24:06 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Web: Page Shifting in Firefox and WebKit Based Browsers</title>
		<link>http://www.williamcyap.com/?p=59</link>
		<comments>http://www.williamcyap.com/?p=59#comments</comments>
		<pubDate>Mon, 22 Sep 2008 03:24:06 +0000</pubDate>
		<dc:creator>William</dc:creator>
				<category><![CDATA[Software Development Tips]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.williamcyap.com/?p=59</guid>
		<description><![CDATA[A popular web design common today is the fixed-width center-aligned page with space on both sides.&#160; However, many web designers have been left puzzled and perplexed after designing a web page to see it shifting slightly back and forth as they browse through their site.
The cause?&#160; Not in the HTML or CSS code.&#160; It&#8217;s in [...]]]></description>
			<content:encoded><![CDATA[<p>A popular web design common today is the fixed-width center-aligned page with space on both sides.&nbsp; However, many web designers have been left puzzled and perplexed after designing a web page to see it shifting slightly back and forth as they browse through their site.</p>
<p>The cause?&nbsp; Not in the HTML or CSS code.&nbsp; It&#8217;s in the browser.&nbsp; Firefox and many other browsers (except Microsoft&#8217;s IE) hide the vertical scroll bar on short web pages, and show them in long pages.&nbsp; The difference of ~16 pixels is enough to irk many web designers when the design of the page realigns to accomodate the scroll bar on longer pages.</p>
<p>The solution is fairly simple; force the scroll bar to show on all pages:</p>
<p>
<code>html<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;min-height: 100%;<br />&nbsp;&nbsp;&nbsp;&nbsp;margin-bottom: 1px;<br />}</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.williamcyap.com/?feed=rss2&amp;p=59</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compiling wxWidgets for Windows</title>
		<link>http://www.williamcyap.com/?p=48</link>
		<comments>http://www.williamcyap.com/?p=48#comments</comments>
		<pubDate>Thu, 18 Sep 2008 03:03:39 +0000</pubDate>
		<dc:creator>William</dc:creator>
				<category><![CDATA[Software Development Articles]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[wxWidgets]]></category>

		<guid isPermaLink="false">http://www.williamcyap.com/?p=48</guid>
		<description><![CDATA[wxWidgets is a cross-platform application library that lets developers write once to compile on many different platforms.&#160; Why is wxWidgets superior to other cross-platform development methods? There are several reasons.

Select your target.&#160; wxWidgets compiles onto Windows, Mac OS X, GTK+, X11, Motif, WinCE, and many more platforms.
  
Choose you weapon.&#160; wxWidgets supports C++, Python, [...]]]></description>
			<content:encoded><![CDATA[<p>wxWidgets is a cross-platform application library that lets developers write once to compile on many different platforms.&nbsp; Why is wxWidgets superior to other cross-platform development methods? There are several reasons.</p>
<ol>
<li>Select your target.&nbsp; wxWidgets compiles onto Windows, Mac OS X, GTK+, X11, Motif, WinCE, and many more platforms.
  </li>
<li>Choose you weapon.&nbsp; wxWidgets supports C++, Python, Perl, C#, and<br />
many more languages.&nbsp; You can choose C++ for highly optimized<br />
applications, to Python, for a very dynamic code base.</li>
<li>Ever spot a Java app a mile away?&nbsp; The wxWidget application GUI integrate seamlessly into your desktop because it uses <em><strong>native </strong></em>GUI elements.</li>
<li>Maturity.&nbsp; wxWidgets has come a long way and is a stable platform for development.</li>
<li>Community.&nbsp; wxWidgets has a strong developer community writing code and willing to answer questions.</li>
</ol>
<p>Compiling wxWidgets is not difficult. Here are instructions for compiling wxWidgets.</p>
<h3>Windows</h3>
<ol>
<li>Download and install <a href="http://www.microsoft.com/express/download/">Microsoft Visual C++ 2008 Express Edition</a>.</li>
<li>Download the <a href="http://www.wxwidgets.org/downloads/#latest_stable">latest wxWidgets stable release</a> for Windows (under &#8220;wxMSW&#8221;).&nbsp; I prefer the zip archive over the installer version.</li>
<li>Extract wxWidgets.&nbsp; For this example, I downloaded wxMSW-2.8.9.zip and extracted the &#8220;wxMSW-2.8.9&#8243; directory to &#8220;c:\dev\libs&#8221; (directories I created).&nbsp; My wxWidgets path is &#8220;c:\dev\libs\wxMSW-2.8.9\&#8221; .&nbsp; Yours may be different; adjust accordingly.</li>
<li>Open &#8220;wxMSW-2.8.9\build\msw\wx.dsw&#8221; .&nbsp; This should bring up Visual C++.</li>
<li>Choose one of the DLL build configurations under &#8220;Solution Configurations&#8221; in the toolbar.&nbsp; (Do not choose a &#8220;Universal&#8221; configuration, as this configuration is limited and does not use native widgets.)
<p>I prefer to use the &#8220;DLL Unicode Debug&#8221; and &#8220;DLL Unicode Release&#8221; builds.&nbsp; wxWidgets 3 (The Next Generation) may only support Unicode builds, and not ANSI.</p>
<p>Furthermore, if you are contemplating using wxWidgets for a proprietary or closed source project, the LGPL license does not permit you to statically link your project.&nbsp; However, you may use dynamic linking via DLL&#8217;s.</li>
<li>Right click on each project in the &#8220;Solution Explorer&#8221; and choose &#8220;Build&#8221;.
<p>Projects must be built in the following order:<br />jpeg<br />png<br />tiff<br />zlib<br />regex<br />expat<br />base<br />net<br />odbc<br />core<br />gl<br />html<br />media<br />qa<br />adv<br />dbgrid*<br />xrc<br />aui<br />richtext</p>
<p>*If dbgrid fails to build, make sure &#8220;dbgrid&#8221; is selected in Solution Explorer.&nbsp; Go to the &#8220;Project&#8221; menu / &#8220;Properties&#8221; / &#8220;Configuration Properties&#8221; / &#8220;Linker&#8221; / &#8220;Input&#8221;.&nbsp; Under &#8220;Additional Dependencies&#8221;, delete the entry &#8220;..\..\lib\vc_dll\wxbase28ud_odbc.lib&#8221;.&nbsp; Attempt to build dbgrid again.</li>
<li>Go to the &#8220;Start&#8221; menu / &#8220;Control Panel&#8221; / &#8220;System&#8221; / &#8220;Advanced tab&#8221; / &#8220;Environment Variables&#8221; button.
<p>Click on &#8220;New&#8221; and under &#8220;Variable name:&#8221; enter &#8220;wxwin&#8221;.<br />Under &#8220;Variable value:&#8221; enter &#8220;c:\dev\libs\wxMSW-2.8.9&#8243; or the path to your wxWidgets base directory.&nbsp; Click on &#8220;OK&#8221;.</li>
<li>If all has gone well, wxWidgets is fully compiled and ready for use.&nbsp; The following are important variables to feed into your compiler for your own apps:
<p>Additional Include Directories: &#8220;($wxwin)\include&#8221; &#8220;($wxwin)\lib\vc_dll\mswud&#8221;<br />Additional Library Dependencies: &#8220;($wxwin)\lib\vc_dll&#8221;</li>
<li>That&#8217;s it!&nbsp; Open the sample applications and compile them.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.williamcyap.com/?feed=rss2&amp;p=48</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Python: Creating An Empty List of Lists (Multidimensional, Matrix) in Python</title>
		<link>http://www.williamcyap.com/?p=56</link>
		<comments>http://www.williamcyap.com/?p=56#comments</comments>
		<pubDate>Mon, 08 Sep 2008 03:19:59 +0000</pubDate>
		<dc:creator>William</dc:creator>
				<category><![CDATA[Software Development Tips]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.williamcyap.com/?p=56</guid>
		<description><![CDATA[Python does not have a direct way of creating a list of lists.&#160; New developers may run into problems wherein each sublist in a list actually resolves to the same sublist.&#160; The most direct way to create a list of lists is:

table = [ [ None for c in range(columns) ] for r in range(rows) [...]]]></description>
			<content:encoded><![CDATA[<p>Python does not have a direct way of creating a list of lists.&nbsp; New developers may run into problems wherein each sublist in a list actually resolves to the same sublist.&nbsp; The most direct way to create a list of lists is:</p>
<p>
<code>table = [ [ None for c in range(columns) ] for r in range(rows) ]</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.williamcyap.com/?feed=rss2&amp;p=56</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mozilla Build Tools: Linker Not Found</title>
		<link>http://www.williamcyap.com/?p=52</link>
		<comments>http://www.williamcyap.com/?p=52#comments</comments>
		<pubDate>Mon, 08 Sep 2008 03:17:00 +0000</pubDate>
		<dc:creator>William</dc:creator>
				<category><![CDATA[Software Development Tips]]></category>
		<category><![CDATA[Mozilla Build Tools]]></category>

		<guid isPermaLink="false">http://www.williamcyap.com/?p=52</guid>
		<description><![CDATA[Mozilla Build Tools
Linker Not Found
Mozilla Build Tools blends a *nix build environment with Microsoft&#8217;s Visual Studio build tools. Many packages though, aren&#8217;t aware of Microsoft&#8217;s build tools. A common error is:


configure: error: no acceptable ld found in $PATH
A quick and easy fix for this is to run the &#8216;./configure&#8217; command as:


LD=link.exe ./configure

where &#8216;link.exe&#8217; point to [...]]]></description>
			<content:encoded><![CDATA[<h3>Mozilla Build Tools</h3>
<h4>Linker Not Found<br /></h4>
<p>Mozilla Build Tools blends a *nix build environment with Microsoft&#8217;s Visual Studio build tools. Many packages though, aren&#8217;t aware of Microsoft&#8217;s build tools. A common error is:</p>
<p>
<code><br />
configure: error: no acceptable ld found in $PATH</code></p>
<p>A quick and easy fix for this is to run the &#8216;./configure&#8217; command as:</p>
<p>
<code><br />
LD=link.exe ./configure</code>
</p>
<p>where &#8216;link.exe&#8217; point to the path of your linker.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.williamcyap.com/?feed=rss2&amp;p=52</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compiling Cairo for Windows</title>
		<link>http://www.williamcyap.com/?p=44</link>
		<comments>http://www.williamcyap.com/?p=44#comments</comments>
		<pubDate>Mon, 08 Sep 2008 02:59:34 +0000</pubDate>
		<dc:creator>William</dc:creator>
				<category><![CDATA[Software Development Articles]]></category>
		<category><![CDATA[Cairo]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.williamcyap.com/?p=44</guid>
		<description><![CDATA[Cairo is a cross-platform 2D graphics software library.  It is designed to produce consistent output on all output media while taking advantage of display hardware acceleration when available.
Cairo is growing in popularity, and is used in applications such as Firefox 3.
Compiling Cairo can be a long and difficult process, especially if one has never [...]]]></description>
			<content:encoded><![CDATA[<p>Cairo is a cross-platform 2D graphics software library.  It is designed to produce consistent output on all output media while taking advantage of display hardware acceleration when available.</p>
<p>Cairo is growing in popularity, and is used in applications such as Firefox 3.</p>
<p>Compiling Cairo can be a long and difficult process, especially if one has never done it before.&nbsp; The following is a guide to make that task simpler.</p>
<p>Cairo requires several libraries in order to fully compile with PNG and PDF extensions.</p>
<p>1. Download the latest version of Cairo, pixman, libpng, and zlib.&nbsp; Here are the URLs:</p>
<table border="0">
<tbody>
<tr>
<td>Cairo, pixman</td>
<td>http://cairographics.org/releases/</td>
</tr>
<tr>
<td>libpng</td>
<td>http://www.libpng.org/pub/png/libpng.html</td>
</tr>
<tr>
<td>zlib</td>
<td>http://www.zlib.net/</td>
</tr>
</tbody>
</table>
<p>2. Extract the files.&nbsp; In my case, the resulting directories are:<br />
	C:\devel\libs\cairo-1.8.0<br />
	C:\devel\libs\pixman-0.12.0<br />
	C:\devel\libs\libpng-1.2.32<br />
	C:\devel\libs\zlib-1.2.3</p>
<h4>Compiling zlib</h4>
<p>Open &#8220;C:\devel\libs\zlib-1.2.3\contrib\vstudio\vc8\zlibvc.sln&#8221; and convert the solution.</p>
<p>	Change the &#8220;Solutions Platform&#8221; in the toolbar from &#8220;Itanium&#8221; to &#8220;Win32&#8243;. Make sure &#8220;Solution Configurations&#8221; in the toolbar is set to &#8220;Debug&#8221;.</p>
<p>Right click on &#8220;zlibvc&#8221; in the &#8220;Solution Explorer&#8221; and go to &#8220;Properties&#8221;. Perform the following actions:</p>
<table border="0">
<tbody>
<tr>
<td>Location:</td>
<td>Variable:</td>
<td>Action:</td>
</tr>
<tr>
<td>&#8220;Configuration Properties&#8221; / &#8220;C/C++&#8221; / &#8220;Code Generation&#8221;</td>
<td>&#8220;Runtime Library&#8221;</td>
<td>Change to &#8220;Multi-threaded Debug DLL (/MDd)&#8221;</td>
</tr>
<tr>
<td>&#8220;Configuration Properties&#8221; / &#8220;C/C++&#8221; / &#8220;Preprocessor&#8221;</td>
<td>&#8220;Preprocessor Definitions&#8221;</td>
<td>Delete &#8220;ZLIB_WINAPI&#8221;</td>
</tr>
<tr>
<td>&#8220;Configuration Properties&#8221; / &#8220;Linker&#8221; / &#8220;General&#8221;</td>
<td>&#8220;Output File&#8221;</td>
<td>Change to &#8220;$(OutDir)\zlib1.dll&#8221;</td>
</tr>
<tr>
<td>&#8220;Configuration Properties&#8221; / &#8220;Linker&#8221; / &#8220;Advanced&#8221;</td>
<td>&#8220;Output File&#8221;</td>
<td>Change to &#8220;$(OutDir)/zlib1.lib&#8221;</td>
</tr>
</tbody>
</table>
<p>Click on &#8220;OK&#8221; to close the &#8220;Properties&#8221; box. Right click on &#8220;zlibvc&#8221; in the &#8220;Solution Explorer&#8221;, and click on &#8220;Build&#8221;.</p>
<p>	The output files, &#8220;zlib1.lib&#8221; and &#8220;zlib1.dll&#8221;, are located at: &#8220;C:\devel\libs\zlib-1.2.3\contrib\vstudio\vc8\x86\ZlibDllDebug&#8221;<br />
	The zlib include directory is: &#8220;C:\devel\libs\zlib-1.2.3&#8243;.</p>
<h4>Compiling libpng</h4>
<p>Open &#8220;C:\devel\libs\libpng-1.2.32\projects\visualc71\libpng.sln&#8221; and convert the solution.&nbsp; Delete the &#8220;zlib&#8221; project from the &#8220;Solution Explorer&#8221;.</p>
<p>	Make sure &#8220;Solution Configurations&#8221; in the toolbar is set to &#8220;DLL ASM Debug&#8221;.</p>
<p>Right click on &#8220;libpng&#8221; in the &#8220;Solution Explorer&#8221; and go to &#8220;Properties&#8221;.</p>
<table border="0">
<tbody>
<tr>
<td>Location:</td>
<td>Variable:</td>
<td>Action:</td>
</tr>
<tr>
<td>&#8220;Configuration Properties&#8221; / &#8220;C/C++&#8221; / &#8220;Code Generation&#8221;</td>
<td>&#8220;Runtime Library&#8221;</td>
<td>Change to &#8220;Multi-threaded Debug DLL (/MDd)&#8221;</td>
</tr>
<tr>
<td>&#8220;Configuration Properties&#8221; / &#8220;C/C++&#8221; / &#8220;General&#8221;</td>
<td>&#8220;Additional Include Directories&#8221;</td>
<td>Change &#8220;..\..\..\zlib&#8221; to &#8220;..\..\..\zlib-1.2.3&#8243;</td>
</tr>
<tr>
<td>&#8220;Configuration Properties&#8221; / &#8220;Linker&#8221; / &#8220;General&#8221;</td>
<td>&#8220;Additional Include Directories&#8221;</td>
<td>Add &#8220;..\..\..\zlib-1.2.3\contrib\vstudio\vc8\x86\ZlibDllDebug&#8221;</td>
</tr>
<tr>
<td>&#8220;Configuration Properties&#8221; / &#8220;Linker&#8221; / &#8220;Input&#8221;</td>
<td>&#8220;Additional Dependencies&#8221;</td>
<td>Add &#8220;zlib1.lib&#8221;</td>
</tr>
</tbody>
</table>
<p>Click on &#8220;OK&#8221; to close the &#8220;Properties&#8221; box.&nbsp; Right click on &#8220;libpng&#8221; in the &#8220;Solution Explorer&#8221;, and click on &#8220;Build&#8221;.</p>
<p>	The output files, &#8220;libpng13d.lib&#8221; and &#8220;libpng13d.dll&#8221;, are located at: &#8220;C:\devel\libs\libpng-1.2.32\projects\visualc71\Win32_DLL_ASM_Debug&#8221;<br />
	The zlib include directory is: &#8220;C:\devel\libs\libpng-1.2.32&#8243;.</p>
<h4>Compiling Pixman</h4>
<p>Pixman includes a makefile for Microsoft Visual Studio&#8217;s compiler and linker.&nbsp; However, the makefile itself is not compatible with Microsoft&#8217;s nmake.exe.&nbsp; A good path to take that does not involve installing Cygwin is to install the <a href="http://developer.mozilla.org/En/Windows_Build_Prerequisites">MozillaBuild</a> environment.&nbsp; Visual Studio 9 includes all the necessary windows headers and libraries, but MozillaBuild demands a <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&amp;displaylang=en#filelist">Windows Platform SDK</a> installation.&nbsp; Install the Windows Server 2003 version, not the Windows Server 2008 version!&nbsp; MozillaBuild won&#8217;t recognize the latter.</p>
<p>Start MozillaBuild by executing &#8220;C:\mozilla-build\start-msvc9.bat&#8221;, and go to the pixman directory by executing &#8220;cd /c/devel/libs/pixman-0.12.0/pixman&#8221;.&nbsp; Execute &#8220;make -f Makefile.win32 CFG=debug&#8221;.</p>
<p>	The output file, &#8220;pixman-1.lib&#8221;, will be in the directory &#8220;C:\devel\libs\pixman-0.12.0\pixman\debug&#8221;.<br />
The pixman include directory is: &#8220;C:\devel\libs\pixman-0.12.0\pixman&#8221;.</p>
<h4>Compiling Cairo</h4>
<p>And now, for the last leg of this marathon build session!</p>
<p>Start Microsoft Visual C++ 2008 Express Edition.&nbsp; Start a new &#8220;Empty Project&#8221;. Here are my settings:</p>
<table border="0">
<tbody>
<tr>
<td>Name:</td>
<td>libcairo</td>
</tr>
<tr>
<td>Location:</td>
<td>C:\dev\libs\cairo-1.8.0\vs9</td>
</tr>
<tr>
<td>Solution Name:</td>
<td>libcairo</td>
</tr>
</tbody>
</table>
<p>From &#8220;C:\devel\libs\cairo-1.8.0\src&#8221;, add the following files to the &#8220;Solution Explorer&#8221;:</p>
<table border="0">
<tbody>
<tr>
<td>Under &#8220;Source Files&#8221;</td>
<td>Under &#8220;Header Files&#8221;</td>
</tr>
<tr>
<td valign="top">cairo-analysis-surface.c<br />
			cairo-arc.c<br />
			cairo-array.c<br />
			cairo-atomic.c<br />
			cairo-base85-stream.c<br />
			cairo-bentley-ottmann.c<br />
			cairo-cache.c<br />
			cairo-cff-subset.c<br />
			cairo-clip.c<br />
			cairo-color.c<br />
			cairo-debug.c<br />
			cairo-deflate-stream.c<br />
			cairo-fixed.c<br />
			cairo-font-face.c<br />
			cairo-font-options.c<br />
			cairo-freelist.c<br />
			cairo-gstate.c<br />
			cairo-hash.c<br />
			cairo-hull.c<br />
			cairo-image-surface.c<br />
			cairo-lzw.c<br />
			cairo-matrix.c<br />
			cairo-meta-surface.c<br />
			cairo-misc.c<br />
			cairo-mutex.c<br />
			cairo-output-stream.c<br />
			cairo-paginated-surface.c<br />
			cairo-path-bounds.c<br />
			cairo-path-fill.c<br />
			cairo-path-fixed.c<br />
			cairo-path-stroke.c<br />
			cairo-path.c<br />
			cairo-pattern.c<br />
			cairo-pdf-operators.c<br />
			cairo-pdf-surface.c<br />
			cairo-pen.c<br />
			cairo-png.c<br />
			cairo-polygon.c<br />
			cairo-ps-surface.c<br />
			cairo-rectangle.c<br />
			cairo-region.c<br />
			cairo-scaled-font-subsets.c<br />
			cairo-scaled-font.c<br />
			cairo-skiplist.c<br />
			cairo-slope.c<br />
			cairo-spline.c<br />
			cairo-stroke-style.c<br />
			cairo-surface-fallback.c<br />
			cairo-surface.c<br />
			cairo-svg-surface.c<br />
			cairo-system.c<br />
			cairo-traps.c<br />
			cairo-truetype-subset.c<br />
			cairo-type1-fallback.c<br />
			cairo-type1-subset.c<br />
			cairo-type3-glyph-surface.c<br />
			cairo-unicode.c<br />
			cairo-user-font.c<br />
			cairo-version.c<br />
			cairo-wideint.c<br />
			cairo-win32-font.c<br />
			cairo-win32-printing-surface.c<br />
			cairo-win32-surface.c<br />
		cairo.c</td>
<td valign="top">cairo-analysis-surface-private.h<br />
			cairo-arc-private.h<br />
			cairo-atomic-private.h<br />
			cairo-beos.h<br />
			cairo-cache-private.h<br />
			cairo-clip-private.h<br />
			cairo-compiler-private.h<br />
			cairo-deprecated.h<br />
			cairo-features.h<br />
			cairo-fixed-private.h<br />
			cairo-fixed-type-private.h<br />
			cairo-freelist-private.h<br />
			cairo-gstate-private.h<br />
			cairo-hash-private.h<br />
			cairo-malloc-private.h<br />
			cairo-meta-surface-private.h<br />
			cairo-mutex-impl-private.h<br />
			cairo-mutex-list-private.h<br />
			cairo-mutex-private.h<br />
			cairo-mutex-type-private.h<br />
			cairo-output-stream-private.h<br />
			cairo-paginated-private.h<br />
			cairo-paginated-surface-private.h<br />
			cairo-path-fixed-private.h<br />
			cairo-path-private.h<br />
			cairo-pdf-operators-private.h<br />
			cairo-pdf-surface-private.h<br />
			cairo-pdf.h<br />
			cairo-private.h<br />
			cairo-ps-surface-private.h<br />
			cairo-ps.h<br />
			cairo-reference-count-private.h<br />
			cairo-region-private.h<br />
			cairo-scaled-font-private.h<br />
			cairo-scaled-font-subsets-private.h<br />
			cairo-skiplist-private.h<br />
			cairo-supported-features.h<br />
			cairo-surface-fallback-private.h<br />
			cairo-surface-private.h<br />
			cairo-svg-surface-private.h<br />
			cairo-svg.h<br />
			cairo-truetype-subset-private.h<br />
			cairo-type1-private.h<br />
			cairo-type3-glyph-surface-private.h<br />
			cairo-types-private.h<br />
			cairo-user-font-private.h<br />
			cairo-version.h<br />
			cairo-wideint-private.h<br />
			cairo-wideint-type-private.h<br />
			cairo-win32-private.h<br />
			cairo-win32.h<br />
			cairo.h<br />
		cairoint.h</td>
</tr>
</tbody>
</table>
<p>Do not add the following files:</p>
<table border="0">
<tbody>
<tr>
<td>Under &#8220;Source Files&#8221;</td>
<td>Under &#8220;Header Files&#8221;</td>
</tr>
<tr>
<td valign="top">
cairo-directfb-surface.c<br />
		cairo-ft-font.c<br />
			cairo-glitz-surface.c<br />
			cairo-os2-surface.c<br />
			cairo-quartz-font.c<br />
cairo-quartz-surface.c<br />
cairo-xcb-surface.c<br />
cairo-xlib-display.c<br />
cairo-xlib-screen.c<br />
cairo-xlib-surface.c<br />
cairo-xlib-visual.c<br />
check-has-hidden-symbols.c<br />
check-link.c<br />
test-fallback-surface.c<br />
test-meta-surface.c<br />
test-paginated-surface.c
</td>
<td valign="top">
cairo-directfb.h<br />
			cairo-ft-private.h<br />
cairo-ft.h<br />
cairo-glitz-private.h<br />
cairo-glitz.h<br />
cairo-os2-private.h<br />
cairo-os2.h<br />
cairo-quartz-private.h<br />
cairo-quartz.h<br />
cairo-xcb-xrender.h<br />
cairo-xcb.h<br />
cairo-xlib-private.h<br />
cairo-xlib-surface-private.h<br />
cairo-xlib-xrender-private.h<br />
cairo-xlib-xrender.h<br />
cairo-xlib.h<br />
test-fallback-surface.h<br />
test-meta-surface.h<br />
test-paginated-surface.h
</td>
</tr>
</tbody>
</table>
<p>Open &#8220;cairo-features.h&#8221; from the &#8220;Solution Explorer&#8221; and replace its contents with the following:</p>
<p>
<code>#ifndef CAIRO_FEATURES_H<br />
#define CAIRO_FEATURES_H</p>
<p>#define CAIRO_HAS_FT_FONT 0<br />
	#define CAIRO_HAS_IMAGE_SURFACE 1<br />
	#define CAIRO_HAS_PDF_SURFACE 1<br />
	#define CAIRO_HAS_PNG_FUNCTIONS 1<br />
	#define CAIRO_HAS_PS_SURFACE 1<br />
	#define CAIRO_HAS_SVG_SURFACE 1<br />
	#define CAIRO_HAS_USER_FONT 1<br />
	#define CAIRO_HAS_XLIB_SURFACE 0<br />
	#define CAIRO_HAS_XLIB_XRENDER_SURFACE 0<br />
	#define CAIRO_HAS_WIN32_SURFACE 1<br />
#define CAIRO_HAS_WIN32_FONT 1</p>
<p>#endif</code></p>
<p>Close and save cairo-features.h .</p>
<p>Make sure &#8220;Solution Configurations&#8221; in the toolbar is set to &#8220;Debug&#8221;.</p>
<p>Right click on &#8220;libcairo&#8221; in the &#8220;Solution Explorer&#8221; and go to &#8220;Properties&#8221;. </p>
<table border="0">
<tbody>
<tr>
<td>Location:</td>
<td>Variable:</td>
<td>Action:</td>
</tr>
<tr>
<td>&#8220;Configuration Properties&#8221; /  &#8220;General&#8221;</td>
<td>&#8220;Configuration Type&#8221;</td>
<td>Change to &#8220;Dynamic DLL (.dll)&#8221;</td>
</tr>
<tr>
<td>&#8220;Configuration Properties&#8221; / &#8220;C/C++&#8221; / &#8220;Code Generation&#8221;</td>
<td>&#8220;Runtime Library&#8221;</td>
<td>Change to &#8220;Multi-threaded Debug DLL (/MDd)&#8221;</td>
</tr>
<tr>
<td>&#8220;Configuration Properties&#8221; / &#8220;C/C++&#8221; / &#8220;General&#8221;</td>
<td>&#8220;Additional Include Directories&#8221;</td>
<td>Change to &#8220;C:\devel\libs\zlib-1.2.3;C:\devel\libs\libpng-1.2.32;C:\devel\libs\pixman-0.12.0\pixman&#8221;</td>
</tr>
<tr>
<td>&#8220;Configuration Properties&#8221; / &#8220;Linker&#8221; / &#8220;General&#8221;</td>
<td>&#8220;Additional Include Directories&#8221;</td>
<td>Change to &#8220;C:\devel\libs\zlib-1.2.3\contrib\vstudio\vc8\x86\ZlibDllDebug;C:\devel\libs\libpng-1.2.32\projects\visualc71\Win32_DLL_ASM_Debug;C:\devel\libs\pixman-0.12.0\pixman\debug&#8221;</td>
</tr>
<tr>
<td>&#8220;Configuration Properties&#8221; / &#8220;Linker&#8221; / &#8220;Input&#8221;</td>
<td>&#8220;Additional Dependencies&#8221;</td>
<td>Change to &#8220;zlib1.lib libpng13d.lib pixman-1.lib msimg32.lib&#8221;</td>
</tr>
<tr>
<td>&#8220;Configuration Properties&#8221; / &#8220;Linker&#8221; / &#8220;General&#8221;</td>
<td>&#8220;Output File&#8221;</td>
<td>Change to &#8220;$(OutDir)\$(ProjectName)d.dll&#8221;</td>
</tr>
</tbody>
</table>
<p>Click on &#8220;OK&#8221; to close the &#8220;Properties&#8221; box.&nbsp; Right click on &#8220;libcairo&#8221; in the &#8220;Solution Explorer&#8221;, and click on &#8220;Build&#8221;.</p>
<p>The output files, &#8220;libcairod.lib&#8221; and &#8220;libcairod.dll&#8221;, are located at:<br />
&#8220;C:\devel\libs\cairo-1.8.0\vs9\libcairo\Debug&#8221;<br />
The Cairo include directory is: &#8220;C:\devel\libs\cairo-1.8.0\src&#8221;.</p>
<p>That&#8217;s it.. enjoy! Make sure to visit my wxCairo tutorial!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.williamcyap.com/?feed=rss2&amp;p=44</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
