<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Z's</title>
	<atom:link href="http://mdzahidh.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mdzahidh.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Wed, 15 Oct 2008 21:07:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='mdzahidh.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Z's</title>
		<link>http://mdzahidh.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://mdzahidh.wordpress.com/osd.xml" title="Z&#039;s" />
	<atom:link rel='hub' href='http://mdzahidh.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Pointer To C++ Class Methods; Or Should You Call &#8216;em &#8220;Method Pointers&#8221;?</title>
		<link>http://mdzahidh.wordpress.com/2008/07/16/pointer-to-c-class-methods-or-should-you-call-em-method-pointers/</link>
		<comments>http://mdzahidh.wordpress.com/2008/07/16/pointer-to-c-class-methods-or-should-you-call-em-method-pointers/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 20:14:22 +0000</pubDate>
		<dc:creator>mdzahidh</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[function pointer]]></category>
		<category><![CDATA[function pointers]]></category>
		<category><![CDATA[method]]></category>
		<category><![CDATA[method pointer]]></category>
		<category><![CDATA[method pointers]]></category>
		<category><![CDATA[methods]]></category>
		<category><![CDATA[pointer]]></category>
		<category><![CDATA[pointers]]></category>

		<guid isPermaLink="false">http://mdzahidh.wordpress.com/?p=31</guid>
		<description><![CDATA[This one is after a real long break from blogs . Function pointer is pretty commonplace among C/C++ developers unlike &#8220;pointer to C++ class methods.&#8221; For those who have never used it or even heard of it; it really is very similar to &#8220;Function Pointer&#8221; from outside, though its internal mechanism is entirely different and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdzahidh.wordpress.com&amp;blog=1504610&amp;post=31&amp;subd=mdzahidh&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This one is after a real long break from blogs <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .<br />
Function pointer is pretty commonplace among C/C++ developers unlike &#8220;pointer to C++ class methods.&#8221; For those who have never used it or even heard of it; it really is very similar to &#8220;Function Pointer&#8221; from outside, though its internal mechanism is entirely different and its syntax is quite ugly. So, without much literature, let’s see how one would make a pointer to a C++ method. Before that, let’s review the usual function pointer of C a little bit:</p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// define a function type FUNCTION that takes int and char* as argument</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:blue;">typedef</span><span style="font-size:10pt;font-family:Courier;"> <span style="color:blue;">int</span> (*FUNCTION) (<span style="color:blue;">int</span>, <span style="color:blue;">char</span>*); </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;"> </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// Declare a funciton pointer f of type FUNCTION </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// and make f point to some function that takes int and char* as argument.</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;">FUNCTION f = some_function; </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;"> </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// Simply call the function with an int and char* argument</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;">f(10,<span style="color:maroon;">&#8220;Hello&#8221;</span>); </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;"> </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;"> </span></p>
<p>So that’s how function pointers are dealt in C. Following is a snippet that shows how to declare a function pointer that points to a method of a C++ class and then finally shows how to call that method via the function pointer (or &#8220;method pointer,&#8221; if you like to call it that way):</p>
<p><span id="more-31"></span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// A sample class, lets call it Base</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// with a sample method called &#8220;Method&#8221;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:blue;">class</span><span style="font-size:10pt;font-family:Courier;color:blue;"> Base{</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:blue;">public</span><span style="font-size:10pt;font-family:Courier;">:</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;padding-left:30px;"><span style="font-size:10pt;font-family:Courier;"> <span style="color:blue;">int</span> Method( <span style="color:blue;">int</span> i, <span style="color:blue;">char</span> *str )</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;padding-left:30px;"><span style="font-size:10pt;font-family:Courier;"> {</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;padding-left:60px;"><span style="font-size:10pt;font-family:Courier;"> printf(<span style="color:maroon;">&#8220;Inside Base::Method: %d, %s\n&#8221;</span>,i,str);</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;padding-left:60px;"><span style="font-size:10pt;font-family:Courier;"> <span style="color:blue;">return</span> 0;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;padding-left:30px;"><span style="font-size:10pt;font-family:Courier;"> }</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;">};</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;"> </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// Note how FNMETHOD is defined. This is very similar to C function pointer</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// definition just that the type is preceded by the class name and &#8220;::&#8221;.</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// The class name is important and this tells that FNMETHOD can only point to</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// the methods of type (int, char*) and only of class Base and it&#8217;s derivatives.</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:blue;">typedef</span><span style="font-size:10pt;font-family:Courier;"> <span style="color:blue;">int</span> (Base::*FNMETHOD) ( <span style="color:blue;">int</span>, <span style="color:blue;">char</span>* );</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;"> </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// Later somewhere else in the code&#8230;.</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// Declare a function pointer f of type FNMETHOD and make it</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// point to a method of the Base class, e.g. Base::Method. </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// Note the usage of &amp; symbol and this is important. For C,&amp; is not</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// necessary for the assignment but for C++ method it is necessary.</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;">FNMETHOD f = &amp;Base::Method;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;"> </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// Now create an object of Base</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;">Base *pBase = <span style="color:blue;">new</span> Base();</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;"> </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// This is how f can be called with an instance of Base. Note the syntax, with </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// care give to the * operator and brackets. You must need an intance of Base</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// to call f because you need to pass the &#8220;this&#8221; pointer to the methods right?</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;">(pBase-&gt;*f)(10,<span style="color:maroon;">&#8220;Hello&#8221;</span>);</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;"> </span></p>
<p>Can you see the resemblance between C++ &#8220;method pointers&#8221; the usual C function pointers? Obviously, I can write a whole big chapter on this &#8220;Method Pointers&#8221; and how they all work under the hood (which is quite different from function pointers of C) but I will stop it here as writing in on every detail might bore you to death. If you want to learn more, just google a little bit; you will find thousands of articles on this topic which go into extreme details. For the moment; all I can add is: this &#8220;method pointers&#8221; works perfectly for even virtual functions and derived classes. But, there is a little catch, see the following:</p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:blue;">class</span><span style="font-size:10pt;font-family:Courier;"> Base{</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:blue;">public</span><span style="font-size:10pt;font-family:Courier;">:</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;padding-left:30px;"><span style="font-size:10pt;font-family:Courier;"> <span style="color:blue;">virtual</span> <span style="color:blue;">int</span> Method( <span style="color:blue;">int</span> i, <span style="color:blue;">char</span> *str )</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;padding-left:30px;"><span style="font-size:10pt;font-family:Courier;"> {</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;padding-left:60px;"><span style="font-size:10pt;font-family:Courier;"> printf(<span style="color:maroon;">&#8220;Inside Base::Method: %d, %s\n&#8221;</span>,i,str);</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;padding-left:60px;"><span style="font-size:10pt;font-family:Courier;"> <span style="color:blue;">return</span> 0;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;padding-left:30px;"><span style="font-size:10pt;font-family:Courier;"> }</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;">};</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;"> </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// A derived class of Base with overrides Method</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:blue;">class</span><span style="font-size:10pt;font-family:Courier;"> Derived : <span style="color:blue;">public</span> Base{</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:blue;">public</span><span style="font-size:10pt;font-family:Courier;">:</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;padding-left:30px;"><span style="font-size:10pt;font-family:Courier;"> <span style="color:blue;">virtual</span> <span style="color:blue;">int</span> Method( <span style="color:blue;">int</span> i, <span style="color:blue;">char</span> *str )</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;padding-left:30px;"><span style="font-size:10pt;font-family:Courier;"> {</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;padding-left:60px;"><span style="font-size:10pt;font-family:Courier;"> printf(<span style="color:maroon;">&#8220;Inside Derived::Method: %d, %s\n&#8221;</span>,i,str);</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;padding-left:60px;"><span style="font-size:10pt;font-family:Courier;"> <span style="color:blue;">return</span> 0;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;padding-left:30px;"><span style="font-size:10pt;font-family:Courier;"> }</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;">};</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;"> </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// Note the type FNMETHOD is defined on Base class</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:blue;">typedef</span><span style="font-size:10pt;font-family:Courier;"> <span style="color:blue;">int</span> (Base::*FNMETHOD) ( <span style="color:blue;">int</span>, <span style="color:blue;">char</span>* );</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;"> </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// HERE IS THE CATCH; Notice that f is pointing to the method of the</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// Base class but eventually runtime will decide, based on the object pointer,</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// which method will be called, Base::Method or Derived::Method.The </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// bad thing is if Derived class overrides Base::Method then, as a matter </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// of fact,FNMETHOD f = &amp;Derived::Method will give compiler error!</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;">FNMETHOD f = &amp;Base::Method;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;"> </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// Now create an object of Derived!</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;">Base *pBase = <span style="color:blue;">new</span> Derived();</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;"> </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;color:green;">// Verify that the Method of Derived is called!</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;text-align:left;"><span style="font-size:10pt;font-family:Courier;">(pBase-&gt;*f)(10,<span style="color:maroon;">&#8220;Hello&#8221;</span>);</span></p>
<p>If you want to know more about the above &#8220;catch&#8221; situation, then I would suggest you try out the above example yourself and experiment a lot!<br />
Finally, you must be wondering, why would you ever need pointer to a C++ method. Honestly, you can, most of the time, avoid using it unless you are trying to implement something like MFC message mapping or something similar to the Delegates of C#. However, truest form of C# Delegate is not probably implementable using this &#8220;C++ method pointer&#8221; (correct me if I am wrong). Message mapping for GUI or other similar codes are like the perfect places for using &#8220;method pointers&#8221; where you want a particular method of a particular instance of a class to be called upon some event (like call-backs).<br />
Just as a little homework: try to figure out and google about how C++ method pointer works under the hood and how also achieves polymorphism (as shown above).</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mdzahidh.wordpress.com/31/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mdzahidh.wordpress.com/31/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdzahidh.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdzahidh.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdzahidh.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdzahidh.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mdzahidh.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mdzahidh.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mdzahidh.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mdzahidh.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdzahidh.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdzahidh.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdzahidh.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdzahidh.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdzahidh.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdzahidh.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdzahidh.wordpress.com&amp;blog=1504610&amp;post=31&amp;subd=mdzahidh&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mdzahidh.wordpress.com/2008/07/16/pointer-to-c-class-methods-or-should-you-call-em-method-pointers/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5b246b8f04f4028d25a0de042ebcfcd8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Z</media:title>
		</media:content>
	</item>
		<item>
		<title>Exporting STL member variables in a DLL (C/C++)</title>
		<link>http://mdzahidh.wordpress.com/2007/12/06/exporting-stl-member-variables-in-a-dll-cc/</link>
		<comments>http://mdzahidh.wordpress.com/2007/12/06/exporting-stl-member-variables-in-a-dll-cc/#comments</comments>
		<pubDate>Thu, 06 Dec 2007 09:35:24 +0000</pubDate>
		<dc:creator>mdzahidh</dc:creator>
				<category><![CDATA[C/C++]]></category>

		<guid isPermaLink="false">http://mdzahidh.wordpress.com/2007/12/06/exporting-stl-member-variables-in-a-dll-cc/</guid>
		<description><![CDATA[Have you ever encountered one such dreaded warning messages ( warning C4251 ): D:\Microsoft Visual Studio .NET 2003\Vc7\include\list(93) : warning C4251: &#8216;std::_List_nod&#60;_Ty,_Alloc&#62;::_Alnod&#8217; : class &#8216;std::allocator&#60;_Ty&#62;&#8217; needs to have dll-interface to be used by clients of class &#8216;std::_List_nod&#60;_Ty,_Alloc&#62;&#8217; with [ _Ty=Magick::Coordinate, _Alloc=std::allocator&#60;Magick::Coordinate&#62; ] and [ _Ty=std::_List_nod&#60;Magick::Coordinate,std::allocator&#60;Magick::Coordinate&#62;&#62;::_Node ] and [ _Ty=Magick::Coordinate, _Alloc=std::allocator&#60;Magick::Coordinate&#62; ] And did you ever [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdzahidh.wordpress.com&amp;blog=1504610&amp;post=29&amp;subd=mdzahidh&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Have you ever encountered one such dreaded warning messages ( warning C4251 ):</p>
<p><font color="#999999"><em>D:\Microsoft Visual Studio .NET 2003\Vc7\include\list(93) : warning C4251: &#8216;std::_List_nod&lt;_Ty,_Alloc&gt;::_Alnod&#8217; : class &#8216;std::allocator&lt;_Ty&gt;&#8217; needs to have dll-interface to be used by clients of class &#8216;std::_List_nod&lt;_Ty,_Alloc&gt;&#8217;<br />
with<br />
[<br />
_Ty=Magick::Coordinate,<br />
_Alloc=std::allocator&lt;Magick::Coordinate&gt;<br />
]<br />
and<br />
[<br />
_Ty=std::_List_nod&lt;Magick::Coordinate,std::allocator&lt;Magick::Coordinate&gt;&gt;::_Node<br />
]<br />
and<br />
[<br />
_Ty=Magick::Coordinate,<br />
_Alloc=std::allocator&lt;Magick::Coordinate&gt;<br />
]</p>
<p>And did you ever wonder what caused it or perhaps how to solve this warning problem. Honestly, I still could not figure out the right workaround with STL containers but found this <a href="http://support.microsoft.com/kb/q168958/" target="_blank">Microsoft Link</a> useful.</p>
<p>Happy Coding.</p>
<p>Z.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mdzahidh.wordpress.com/29/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mdzahidh.wordpress.com/29/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdzahidh.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdzahidh.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdzahidh.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdzahidh.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mdzahidh.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mdzahidh.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mdzahidh.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mdzahidh.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdzahidh.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdzahidh.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdzahidh.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdzahidh.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdzahidh.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdzahidh.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdzahidh.wordpress.com&amp;blog=1504610&amp;post=29&amp;subd=mdzahidh&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mdzahidh.wordpress.com/2007/12/06/exporting-stl-member-variables-in-a-dll-cc/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5b246b8f04f4028d25a0de042ebcfcd8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Z</media:title>
		</media:content>
	</item>
		<item>
		<title>Can a Office Space Have &#8220;Karma&#8221;?</title>
		<link>http://mdzahidh.wordpress.com/2007/09/17/can-a-office-space-have-karma/</link>
		<comments>http://mdzahidh.wordpress.com/2007/09/17/can-a-office-space-have-karma/#comments</comments>
		<pubDate>Mon, 17 Sep 2007 17:36:11 +0000</pubDate>
		<dc:creator>mdzahidh</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Techs]]></category>

		<guid isPermaLink="false">http://mdzahidh.wordpress.com/2007/09/17/can-a-office-space-have-karma/</guid>
		<description><![CDATA[I&#8217;m not a superstitious guy by any means but there are few things that never fail to intrigue me; they keep me pondering &#8220;does it really work that way?&#8221; Even at times I find myself doing things, rather subconsciously, I believe would bring me better luck just because it produced better results in the past. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdzahidh.wordpress.com&amp;blog=1504610&amp;post=28&amp;subd=mdzahidh&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not a superstitious guy by any means but there are few things that never fail to intrigue me; they keep me<img src="http://graphics8.nytimes.com/images/2007/09/14/business/14landlord2.190.jpg" align="right" height="240" width="190" /> pondering &#8220;does it really work that way?&#8221; Even at times I find myself doing things, rather subconsciously, I believe would bring me better luck just because it produced better results in the past. This would even include something as unrelated and silly as using &#8220;one particular type of&#8221; pen for my univ exams. Every time I thought it was mere stupid I would very soon find convincing myself &#8220;there&#8217;s nothing wrong in using this particular pen; and just in case it brings luck, you never know.&#8221; At other times, these things don&#8217;t really seem all that unrelated as they apparently do. For example, using &#8220;a particular type of&#8221; pen actually would make me more comfortable while writing and hence wouldn&#8217;t infuriate me during a lengthy exam; and my result vastly depended on the variation of my mood along the length of the exam.</p>
<p>I just came to know about one particular office building which has gained some name as having good &#8220;karma!&#8221; I didn&#8217;t know that companies like Google, PayPal and LogiTech kicked off as toddlers from the same office space! Can a office space really posses luck?<a href="http://www.nytimes.com/2007/09/14/technology/14landlord.html?pagewanted=1&amp;ei=5088&amp;en=ee533a8f2581ea42&amp;ex=1347422400&amp;partner=rssnyt&amp;emc=rss" target="_blank"> Read this and be intrigued. </a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mdzahidh.wordpress.com/28/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mdzahidh.wordpress.com/28/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdzahidh.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdzahidh.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdzahidh.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdzahidh.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mdzahidh.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mdzahidh.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mdzahidh.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mdzahidh.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdzahidh.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdzahidh.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdzahidh.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdzahidh.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdzahidh.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdzahidh.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdzahidh.wordpress.com&amp;blog=1504610&amp;post=28&amp;subd=mdzahidh&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mdzahidh.wordpress.com/2007/09/17/can-a-office-space-have-karma/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5b246b8f04f4028d25a0de042ebcfcd8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Z</media:title>
		</media:content>

		<media:content url="http://graphics8.nytimes.com/images/2007/09/14/business/14landlord2.190.jpg" medium="image" />
	</item>
		<item>
		<title>Interesting search strings for google</title>
		<link>http://mdzahidh.wordpress.com/2007/09/01/interesting-search-strings-for-google/</link>
		<comments>http://mdzahidh.wordpress.com/2007/09/01/interesting-search-strings-for-google/#comments</comments>
		<pubDate>Sat, 01 Sep 2007 12:07:12 +0000</pubDate>
		<dc:creator>mdzahidh</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Techs]]></category>

		<guid isPermaLink="false">http://mdzahidh.wordpress.com/2007/09/01/interesting-search-strings-for-google/</guid>
		<description><![CDATA[Thanks a lot to Wasif who showed me these nice google search strings, whereby you can search stuffs on pages which you cannot access normally. For example you want to have a full mp3 song list of say Bryan Adams to be downloaded straight; you can use one of this search strings which will find [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdzahidh.wordpress.com&amp;blog=1504610&amp;post=25&amp;subd=mdzahidh&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Thanks a lot to Wasif who showed me these nice google search strings, whereby you can search stuffs on pages which you cannot access normally. For example you want to have a full mp3 song list of say Bryan Adams to be downloaded straight; you can use one of this search strings which will find the &#8220;index&#8221; pages that usually contain all the songs as normal file entries. Usually these index pages are not accessible from any websites. And guess what, it works and I already downloaded loads of stuffs <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . <a href="http://www.sr-ultimate.com/2005/05/26/google-rapidshare-hacks/2/" target="_blank">Try it out <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</a></p>
<p>PS: If you know more google tricks, please let me know <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mdzahidh.wordpress.com/25/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mdzahidh.wordpress.com/25/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdzahidh.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdzahidh.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdzahidh.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdzahidh.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mdzahidh.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mdzahidh.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mdzahidh.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mdzahidh.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdzahidh.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdzahidh.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdzahidh.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdzahidh.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdzahidh.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdzahidh.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdzahidh.wordpress.com&amp;blog=1504610&amp;post=25&amp;subd=mdzahidh&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mdzahidh.wordpress.com/2007/09/01/interesting-search-strings-for-google/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5b246b8f04f4028d25a0de042ebcfcd8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Z</media:title>
		</media:content>
	</item>
		<item>
		<title>1 Man with Visionary and 13 Men Made the Difference</title>
		<link>http://mdzahidh.wordpress.com/2007/08/30/1-man-with-visionary-and-13-men-made-the-difference/</link>
		<comments>http://mdzahidh.wordpress.com/2007/08/30/1-man-with-visionary-and-13-men-made-the-difference/#comments</comments>
		<pubDate>Thu, 30 Aug 2007 08:46:30 +0000</pubDate>
		<dc:creator>mdzahidh</dc:creator>
				<category><![CDATA[Game]]></category>
		<category><![CDATA[Techs]]></category>

		<guid isPermaLink="false">http://mdzahidh.wordpress.com/2007/08/30/1-man-with-visionary-and-13-men-made-the-difference/</guid>
		<description><![CDATA[This is for people who are genuinely interested in games. Even if you are not you are still most welcome aboard to be inspired by the tale of 13 men and 1 with visionary; the one who when speaks makes the game industry sit back and listen. This is the tale of John Carmack and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdzahidh.wordpress.com&amp;blog=1504610&amp;post=23&amp;subd=mdzahidh&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://mdzahidh.files.wordpress.com/2007/08/legacy_romero2.jpg" title="Id"><img src="http://mdzahidh.files.wordpress.com/2007/08/legacy_romero2.thumbnail.jpg" alt="Id" align="left" /></a>This is for people who are genuinely interested in games. Even if you are not you are still most welcome aboard to be inspired by the tale of 13 men and 1  with visionary; the one who when speaks makes the game industry sit back and listen. This is the tale of <a href="http://en.wikipedia.org/wiki/John_D._Carmack" target="_blank">John Carmack</a> and his <a href="http://en.wikipedia.org/wiki/Id_Software" target="_blank">id software</a><a href="http://en.wikipedia.org/wiki/Id_Software" target="_blank">.</a></p>
<p><a href="http://en.wikipedia.org/wiki/Id_Software" target="_blank"><span id="more-23"></span></a><img src="http://upload.wikimedia.org/wikipedia/en/1/15/Idlogo.jpg" align="left" height="93" width="77" />If some of you are still wondering who this guy is; John Carmack is the first guy to program a fully functional real-time 3D game, namely Wolfenstein3D back in the early 90&#8242;s. He is also the originator of the game <img src="http://content.answers.com/main/content/wp/en/7/76/John_Carmack_working.jpg" alt="John Carmak" align="right" height="114" width="153" />genre FPS (First Person Shooter). All the engine technologies of Quake and Doom Series were sculptured with this hands. Right now he&#8217;s fine tuning another masterpiece namely <a href="http://www.gametrailers.com/player/usermovies/91037.html" target="_blank">idTech5 Rage</a>. He was the guy who almost single handedly moved the game industry towards glory; and is still moving the industry with newer frontiers (for example unique texturing , or MegaTexture technology). And guess what this computer guru is also doing besides making games: he has established a freelance space-station called <a href="http://www.armadilloaerospace.com/n.x/Armadillo/Home" target="_blank">Armadillo!</a></p>
<p>The purpose of this blog entry is bidirectional. Firstly to convey some of the great words from the guru himself: secondly to narrate the story of the last few hours of Quake-III Arena.</p>
<p>Following are the few quotes of John C. which inspire me everyday.</p>
<p><font color="#ff9900"><em><span class="body">&#8220;Focus is a matter of deciding what things you&#8217;re not going to do.&#8221;</span>  &#8211; John Carmack</em></font></p>
<p><font color="#808000"><em>&#8220;Focused, hard work is the real key to success. Keep your eyes on the goal, and just keep taking the next step towards completing it. If you aren&#8217;t sure which way to do something, do it both ways and see which works better.&#8221; &#8211; John Carmack</em><em>&#8220;</em></font></p>
<p><em><font color="#ff9900">&#8220;An interesting question: is it easier to motivate a learned individual that never does anything, or educate an ignorant individual that actually produces things?&#8221; &#8211; John Carmack</font><br />
</em></p>
<p><em><font color="#808000">&#8220;Putting creativity on a pedestal can also be an excuse for laziness. There is a lot of cultural belief that creativity comes from inspiration, and can&#8217;t be rushed. Not true. Inspiration is just your subconscious putting things together, and that can be made into an active process with a little introspection.&#8221; &#8211; John Carmack</font> </em></p>
<p><font color="#ff9900"><em><span class="body">&#8220;Programming is not a zero-sum game. Teaching something to a fellow programmer doesn&#8217;t take it away from you. I&#8217;m happy to share what I can, because I&#8217;m in it for the love of programming.&#8221; &#8211; John Carmack</span></em></font></p>
<p>If you have time then go ahead and read this story of the <a href="http://www.gamespot.com/features/btg-q3/" target="_blank">Last Few Hours of Quake-III Arena.</a> Read and get inspired by how only 13/14 people moved a whole industry and what game companies were like back in those days. Infact, id-Software is probably run by the same spirit still today!<a href="http://www.gamespot.com/features/btg-q3/" target="_blank"><br />
</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mdzahidh.wordpress.com/23/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mdzahidh.wordpress.com/23/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdzahidh.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdzahidh.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdzahidh.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdzahidh.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mdzahidh.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mdzahidh.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mdzahidh.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mdzahidh.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdzahidh.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdzahidh.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdzahidh.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdzahidh.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdzahidh.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdzahidh.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdzahidh.wordpress.com&amp;blog=1504610&amp;post=23&amp;subd=mdzahidh&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mdzahidh.wordpress.com/2007/08/30/1-man-with-visionary-and-13-men-made-the-difference/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5b246b8f04f4028d25a0de042ebcfcd8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Z</media:title>
		</media:content>

		<media:content url="http://mdzahidh.files.wordpress.com/2007/08/legacy_romero2.thumbnail.jpg" medium="image">
			<media:title type="html">Id</media:title>
		</media:content>

		<media:content url="http://upload.wikimedia.org/wikipedia/en/1/15/Idlogo.jpg" medium="image" />

		<media:content url="http://content.answers.com/main/content/wp/en/7/76/John_Carmack_working.jpg" medium="image">
			<media:title type="html">John Carmak</media:title>
		</media:content>
	</item>
		<item>
		<title>Be Eclectic With Google Reader !</title>
		<link>http://mdzahidh.wordpress.com/2007/08/28/be-eclectic-with-google-reader/</link>
		<comments>http://mdzahidh.wordpress.com/2007/08/28/be-eclectic-with-google-reader/#comments</comments>
		<pubDate>Tue, 28 Aug 2007 06:22:42 +0000</pubDate>
		<dc:creator>mdzahidh</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Techs]]></category>

		<guid isPermaLink="false">http://mdzahidh.wordpress.com/2007/08/28/be-eclectic-with-google-reader/</guid>
		<description><![CDATA[First of all let me thank Tahmid Bhai for introducing me with Google Reader. Since then I have kind of fallen in love with this yet-another-google-masterpiece (YAGM :p). The &#8220;My Shared Items&#8221; that you can see on the widget bar (Left or Right of this page, depending on the current theme) is just a manifestation [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdzahidh.wordpress.com&amp;blog=1504610&amp;post=22&amp;subd=mdzahidh&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>First of all let me thank <a href="http://tahmidmunaz.blogspot.com/" target="_blank">Tahmid Bhai</a> for introducing me with <a href="http://www.google.com/reader" target="_blank">Google Reader</a>. Since then I have kind of fallen in love with this yet-another-google-masterpiece (YAGM :p). The &#8220;My Shared Items&#8221; that you can see on the widget bar (Left or Right of this page, depending on the current theme) is just a manifestation of the Google Reader.</p>
<p><span id="more-22"></span>So if you are wondering what Google Reader is; It is a YAGM (btw, it&#8217;s my own term; if you are pondering)  whereby you can subscribe to any number of blogs, RSS feeds and etc etc and can read each and every entry from one place. Whenever a blog gets updated, your Google Reader will notify you. You can also &#8220;Share&#8221; or &#8220;Bookmark&#8221; certain blog entries, which you find worth reading or interesting, and let other people have a peek at your &#8220;Shared&#8221; list too. This shared list of Blog entries can also be made into a RSS feed and displayed anywhere else: the &#8220;My Shared Items&#8221; on this page demonstrates just that. So whenever I &#8220;Share&#8221; one more entry from my Google Reader, this RSS (&#8220;My Shared Items&#8221;) gets updated automatically. It&#8217;s very cool, isn&#8217;t it ? <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . It helps you to have an eclectic collection of blog entries in one place.</p>
<p>I don&#8217;t want to stretch more on Google Reader as the details are all blogged down <a href="http://tahmidmunaz.blogspot.com/2007/06/google-reader-as-my-daily-feed-reader.html" target="_blank">here</a>.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mdzahidh.wordpress.com/22/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mdzahidh.wordpress.com/22/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdzahidh.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdzahidh.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdzahidh.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdzahidh.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mdzahidh.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mdzahidh.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mdzahidh.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mdzahidh.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdzahidh.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdzahidh.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdzahidh.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdzahidh.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdzahidh.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdzahidh.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdzahidh.wordpress.com&amp;blog=1504610&amp;post=22&amp;subd=mdzahidh&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mdzahidh.wordpress.com/2007/08/28/be-eclectic-with-google-reader/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5b246b8f04f4028d25a0de042ebcfcd8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Z</media:title>
		</media:content>
	</item>
		<item>
		<title>A Little C/C++ Recipe You Can Live Without Knowing :)</title>
		<link>http://mdzahidh.wordpress.com/2007/08/24/a-little-cc-recipe-you-can-live-without-knowing/</link>
		<comments>http://mdzahidh.wordpress.com/2007/08/24/a-little-cc-recipe-you-can-live-without-knowing/#comments</comments>
		<pubDate>Fri, 24 Aug 2007 20:11:38 +0000</pubDate>
		<dc:creator>mdzahidh</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Techs]]></category>

		<guid isPermaLink="false">http://mdzahidh.wordpress.com/2007/08/24/a-little-cc-recipe-you-can-live-without-knowing/</guid>
		<description><![CDATA[Yes, read this if you are kind of bored or probably want to be too fussy about &#8220;How things work?&#8221; Have you ever wondered how compilers know how many instances of a class had been previously allocated when delete [] is called; because delete [] might have to traverse through each of the object and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdzahidh.wordpress.com&amp;blog=1504610&amp;post=21&amp;subd=mdzahidh&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yes, read this if you are kind of bored or probably want to be too fussy about &#8220;How things work?&#8221; Have you ever wondered how compilers know how many instances of a class had been previously allocated when delete [] is called; because delete [] might have to traverse through each of the object and call their destructor. So it must be running some kind of loop right? But where does the compiler get the number of instances?<br />
<span id="more-21"></span><br />
C/C++ compilers play a nifty trick when you allocate memories with &#8220;new.&#8221; The only time the compiler needs to traverse through each object and call destructor is when you provide a destructor, right? When you do not provide any destructor there is no point in calling destructor, hence no point in traversing through each object. In such case, when destructor are not explicitly provided by the coder, delete [] simply deallocates the memory, very much like &#8220;free().&#8221;</p>
<p>But things are different when you have an explicit destructor in a class. When &#8220;new&#8221; is called to allocate memory for such a class, it allocates 4 extra bytes. The first 4 bytes are actually used to store an integer&#8230;.. ah you guessed it right <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &#8230;. that&#8217;s exactly the number of instances of the object. So for the following code</p>
<p><font color="#3366ff">class A{<br />
public:<br />
</font></p>
<blockquote><p><font color="#3366ff"> int m_uselessVariable;</font><font color="#3366ff">A(){} // constructor<br />
~A(){} // destructor</font></p></blockquote>
<p><font color="#3366ff">};</font></p>
<p><font color="#3366ff">A *p = new A[10]</font></p>
<p>What the &#8220;new&#8221; does in this case, is allocate 4 extra bytes = sizeof(int), i.e. total memory allocated will be sizeof(A)*10+4: use the first 4 bytes to store 10 and simply return the pointer from the 5th byte.</p>
<p>When</p>
<p><font color="#3366ff">delete []  p</font></p>
<p>is called, the compiler simple checks the 4 bytes behind p, [i.e. *((init*)((char*)p - 4)) ] or more simply [ *((int*)p - 1) ] and reads an integer, which will return 10 for the above case. Now I hope i do not have to explain anymore what the compiler does with that number!</p>
<p>You can verify all these stuffs by overloading &#8220;new&#8221; and &#8220;delete&#8221; operators and see by yourself how many bytes are requested upon memory allocation. And also verify that when a class doesn&#8217;t have any explicit destructor it doesn&#8217;t allocate that mysterious 4 extra bytes, because it doesn&#8217;t need to traverse objects while &#8220;delete []&#8220;</p>
<p>Yes, you can ofcourse lead a healthy C/C++ life without even knowing all these <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>PS: I happen to discover this almost 3 years ago while developing a leak-detector library, quite esoterically named &#8220;Terror Lib,&#8221; for a game engine while at eSophers.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mdzahidh.wordpress.com/21/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mdzahidh.wordpress.com/21/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdzahidh.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdzahidh.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdzahidh.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdzahidh.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mdzahidh.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mdzahidh.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mdzahidh.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mdzahidh.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdzahidh.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdzahidh.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdzahidh.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdzahidh.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdzahidh.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdzahidh.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdzahidh.wordpress.com&amp;blog=1504610&amp;post=21&amp;subd=mdzahidh&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mdzahidh.wordpress.com/2007/08/24/a-little-cc-recipe-you-can-live-without-knowing/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5b246b8f04f4028d25a0de042ebcfcd8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Z</media:title>
		</media:content>
	</item>
		<item>
		<title>What Makes You a Good C/C++ Coder?</title>
		<link>http://mdzahidh.wordpress.com/2007/08/16/what-makes-you-a-good-cc-coder/</link>
		<comments>http://mdzahidh.wordpress.com/2007/08/16/what-makes-you-a-good-cc-coder/#comments</comments>
		<pubDate>Thu, 16 Aug 2007 19:57:22 +0000</pubDate>
		<dc:creator>mdzahidh</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Techs]]></category>

		<guid isPermaLink="false">http://mdzahidh.wordpress.com/2007/08/16/what-makes-you-a-good-cc-coder/</guid>
		<description><![CDATA[Simple answer to this, perhaps, million dollar question is &#8220;Experience.&#8221; Now that&#8217;s vague enough to be applied to every other language on the planet. So what really does make someone a good C/C++ coder. Btw, do not even dare asking this question to Bjarne Stroustrup or Dennis Ritchie or perhaps guys like Linus Torvald since [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdzahidh.wordpress.com&amp;blog=1504610&amp;post=19&amp;subd=mdzahidh&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Simple answer to this, perhaps, million dollar question is &#8220;Experience.&#8221; Now that&#8217;s vague enough to be applied to every other language on the planet. So what really does make someone a good C/C++ coder. Btw, do not even dare asking this question to <a href="http://www.research.att.com/~bs/" target="_blank">Bjarne Stroustrup</a> or <a href="http://cm.bell-labs.com/who/dmr/" target="_blank">Dennis Ritchie</a> or perhaps guys like <a href="http://en.wikipedia.org/wiki/Linus_Torvalds" target="_blank">Linus Torvald</a> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  since they surely have their own definition of being &#8220;good&#8221; which comprise only themselves <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Following is an excerpt of an email that I wrote to someone suggesting him which areas to explore to attend an interview for the game dev team at <a href="http://www.relisource.com" target="_blank">ReliSource Ltd</a>:</p>
<p><span id="more-19"></span></p>
<blockquote><p><em> &#8220;1. Thorough understanding of pointers and memory related stuffs. Which may include understanding of all memory related operations like malloc, free, calloc, new, delete , delete []. We will try to figure out how you plan to deal with not writing or at-least avoiding memory-leaks. Even the best programmers add memory leaks, so we will try to figure out how you might plan to detect memory leaks and fix them.</em></p>
<p><em>2. Understanding of Function Pointer and how it might be used.</em></p>
<p><em>3. Tricky application of MACROS.</em></p>
<p><em>4. Thorough understanding of OOP (which i guess you already have since you do a lot of Java ). But the important thing here is C/C++ way of doing OOP is different (Hint:virtual keyword, multiple inheritance). It also includes understanding of how C/C++ achieves OOP (Hint: vtable).</em></p>
<p><em>5. Very good understanding of &#8220;Copy Constructor&#8221; and why and where it might be absolutely necessary.</em></p>
<p><em>6. Singleton design .</em></p>
<p><em>7. Understanding of Templates and fluency in STL .</em></p>
<p><em>8. Optimization: This is extremely important specially for our projects. You must know which code produces faster executable. How OOP may slow down your process. Code Bloating introduced by Templates. How normal C can be used to make OOP-alike features (Hint: Function Pointer).&#8221;</em></p></blockquote>
<p>Well, the list can grow bigger but exploring the above areas pretty much makes someone a good C/C++ coder. Obviously this article doesn&#8217;t consider the algorithmic, mathematical and problem solving skills of a person which is unrelated to any specific programming language.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mdzahidh.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mdzahidh.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdzahidh.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdzahidh.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdzahidh.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdzahidh.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mdzahidh.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mdzahidh.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mdzahidh.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mdzahidh.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdzahidh.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdzahidh.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdzahidh.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdzahidh.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdzahidh.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdzahidh.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdzahidh.wordpress.com&amp;blog=1504610&amp;post=19&amp;subd=mdzahidh&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mdzahidh.wordpress.com/2007/08/16/what-makes-you-a-good-cc-coder/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5b246b8f04f4028d25a0de042ebcfcd8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Z</media:title>
		</media:content>
	</item>
		<item>
		<title>15 years to glory &#8211; wxWidget!</title>
		<link>http://mdzahidh.wordpress.com/2007/08/14/15-years-to-glory-wxwidget/</link>
		<comments>http://mdzahidh.wordpress.com/2007/08/14/15-years-to-glory-wxwidget/#comments</comments>
		<pubDate>Tue, 14 Aug 2007 18:13:45 +0000</pubDate>
		<dc:creator>mdzahidh</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Techs]]></category>

		<guid isPermaLink="false">http://mdzahidh.wordpress.com/2007/08/14/15-years-to-glory-wxwidget/</guid>
		<description><![CDATA[1992, a guy from University of Edinburg was given the task to design a CASE (Computer Aided Software Engineering) tool to be run in both Windows and Linux system. At that point in time only a few cross platform GUI APIs were available and were very expensive for an university to spend on an in-house [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdzahidh.wordpress.com&amp;blog=1504610&amp;post=17&amp;subd=mdzahidh&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.wxwidgets.org/images/front_screens/dialogblocks-linux.jpg" align="right" height="180" hspace="10" vspace="10" width="198" />1992, a guy from University of Edinburg was given the task to design a CASE (Computer Aided Software Engineering) tool to be run in both Windows and Linux system. At that point in time only a few cross platform GUI APIs were available and were very expensive for an university to spend on an in-house experimental tool. But that didn&#8217;t stop <a href="http://www.anthemion.co.uk/julian.htm" target="_blank">Julian Smart</a> from designing his CASE tool. He realized that a cross-platform GUI has to be developed first and eventually <a href="http://www.wxwidgets.org" target="_blank">wxWidget</a> was conceived. Its is probably one of the most talked about Open-Source project after Linux itself !</p>
<p><span id="more-17"></span>I always had been an advocate for wxWidget since I used it for the first time with version 2.4. Coding with wxWidget is a pleasure. It&#8217;s amazing to see how simple the API is (as far as coding is concerned) yet how diverse and complex it&#8217;s outputs can get. It&#8217;s probably the only C++ widget set that takes native look, i.e. it takes the original look and feel of the platform it has been built for, unlike Swing of Java. An windows application will actually look like an windows application and similarly a Linux GTK application will look like a true GTK application. This feature is somewhat similar to the SWT (for Java) and is pretty cool. Another great feature of wxWidget is that it can save it&#8217;s GUI layouts and other details in xml format which can be modified without touching or rebuilding the code.</p>
<p>If you are thinking that wxWidget is only for Windows and Linux then get ready for a surprise because it has ports for literally all platforms on the planet including Pocket PC ! Even it has a port called &#8220;Universal&#8221; which has its own look and feel and is guaranteed to run in all Linux flavors, even if you do not have GTK !</p>
<p><img src="http://www.wxwidgets.org/images/screens/symlab_small.jpg" alt="wxWidget application running in Windows" align="left" height="180" hspace="10" vspace="10" width="198" /></p>
<p><img src="http://www.wxwidgets.org/images/screens/waveidea-mac-sm.jpg" alt="wxWidget application running in MAC" align="left" height="180" hspace="10" vspace="10" width="198" /></p>
<p>The widget set is extremely diverse. You have almost everything you would ever need. However, you cannot make another Office-2007 or Visual Studio 2005 with it. Since the project is an Open-Source project a major part of it is community driven which means that components and widgets are developed almost continuously by someone somewhere. If you feel you need a certain component that doesn&#8217;t exists in wxWidget, just hold your horses and do few googles before you decide to write your own codes, because more than often you will find that a similar component has already been coded by someone and has been made freely available. In the current release of 2.8 they added one extra set of widgets called AUI which has a collection of advanced UI controls with docking capabilities and etc. wxWidget also participates in the Google Summer of Code and you can have a peek at what they do there <a href="http://www.wxwidgets.org/wiki/index.php/Development:_Student_Projects" target="_blank">(click).</a></p>
<p><a href="http://www.wxwidgets.org/wiki/index.php/Development:_Student_Projects" target="_blank"></a>It&#8217;s is quite amazing that over the last ~15 years wxWidget has almost become a standard for cross-platform C++  GUI application. The number and the names of the companies who have embraced this technology is quite envious. The list includes companies like AMD, AOL, organization like NASA, research institutions like Carnegie Mellon University, CalTech and etc. For a complete list <a href="http://www.wxwidgets.org/about/users.htm" target="_blank">click here</a>. One extra bit of information I can share is that Electronic Arts, RedWood Shore Studio (Maxis Studio) is going to be added in that list very soon!</p>
<p>Even if you are not planning for a cross-platform GUI <a href="http://www.wxwidgets.org" target="_blank">wxWidget</a> can still be your solution, ofcourse if you are not planning to make another Office -2007 or anything alike.</p>
<p>Happy wxWidgeting <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Z</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mdzahidh.wordpress.com/17/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mdzahidh.wordpress.com/17/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdzahidh.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdzahidh.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdzahidh.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdzahidh.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mdzahidh.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mdzahidh.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mdzahidh.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mdzahidh.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdzahidh.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdzahidh.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdzahidh.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdzahidh.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdzahidh.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdzahidh.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdzahidh.wordpress.com&amp;blog=1504610&amp;post=17&amp;subd=mdzahidh&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mdzahidh.wordpress.com/2007/08/14/15-years-to-glory-wxwidget/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5b246b8f04f4028d25a0de042ebcfcd8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Z</media:title>
		</media:content>

		<media:content url="http://www.wxwidgets.org/images/front_screens/dialogblocks-linux.jpg" medium="image" />

		<media:content url="http://www.wxwidgets.org/images/screens/symlab_small.jpg" medium="image">
			<media:title type="html">wxWidget application running in Windows</media:title>
		</media:content>

		<media:content url="http://www.wxwidgets.org/images/screens/waveidea-mac-sm.jpg" medium="image">
			<media:title type="html">wxWidget application running in MAC</media:title>
		</media:content>
	</item>
	</channel>
</rss>
