<?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>bits and bytes</title>
	<atom:link href="http://ntcoder.com/bab/feed/" rel="self" type="application/rss+xml" />
	<link>http://ntcoder.com/bab</link>
	<description>C, C++, VC++, C#, VB.net, Debugging, Dump analysis, Windbg, and Visual Studio related stuff</description>
	<lastBuildDate>Wed, 22 Feb 2012 15:58:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How to enable LARGEADDRESSAWARE?</title>
		<link>http://ntcoder.com/bab/2012/02/22/how-to-enable-largeaddressaware/</link>
		<comments>http://ntcoder.com/bab/2012/02/22/how-to-enable-largeaddressaware/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 15:58:14 +0000</pubDate>
		<dc:creator>Nibu Thomas</dc:creator>
				<category><![CDATA[C++, VC++]]></category>
		<category><![CDATA[DevTools]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[dumpbin]]></category>
		<category><![CDATA[EditBin]]></category>
		<category><![CDATA[LARGEADDRESSAWARE]]></category>

		<guid isPermaLink="false">http://ntcoder.com/bab/?p=2388</guid>
		<description><![CDATA[The command to enable large address aware is as follows&#8230; EditBin /LARGEADDRESSAWARE NotePad.exe How to check if the above command worked or not? Run the above executable (in our case NotePad.exe) with DumpBin.exe. C:\&#62; DumpBin /Headers NotePad.exe FILE HEADER VALUES &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 14C machine (x86) &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 4 number of sections &#160;&#160;&#160;&#160;&#160;&#160;&#160; 4BA1DC16 time date stamp Thu <a href='http://ntcoder.com/bab/2012/02/22/how-to-enable-largeaddressaware/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>The command to enable large address aware is as follows&#8230;</p>
<p>EditBin /LARGEADDRESSAWARE NotePad.exe</p>
<p>How to check if the above command worked or not? Run the above executable (in our case NotePad.exe) with DumpBin.exe.</p>
<p>C:\&gt; DumpBin /Headers NotePad.exe</p>
<p>FILE HEADER VALUES   <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 14C machine (x86)    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 4 number of sections    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; 4BA1DC16 time date stamp Thu Mar 18 02:53:58 2010    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0 file pointer to symbol table    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0 number of symbols    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; E0 size of optional header    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 122 characteristics    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Executable    <br /><font style="background-color: #ffff00">Application can handle large (&gt;2GB) addresses</font>    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 32 bit word machine</p>
<p>See highlighted line.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fntcoder.com%2Fbab%2F2012%2F02%2F22%2Fhow-to-enable-largeaddressaware%2F&amp;title=How%20to%20enable%20LARGEADDRESSAWARE%3F" id="wpa2a_2"><img src="http://ntcoder.com/bab/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://ntcoder.com/bab/2012/02/22/how-to-enable-largeaddressaware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>systeminfo command</title>
		<link>http://ntcoder.com/bab/2012/02/09/systeminfo-command/</link>
		<comments>http://ntcoder.com/bab/2012/02/09/systeminfo-command/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 22:25:58 +0000</pubDate>
		<dc:creator>Nibu Thomas</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[systeminfo]]></category>

		<guid isPermaLink="false">http://ntcoder.com/bab/?p=2385</guid>
		<description><![CDATA[To gather system information of a computer running windows use the command &#8216;SystemInfo&#8217;. The command gathers following information&#8230; 1. Operating system information 2. Processor information 3. Input local information 4. Installed hotfix information 5. Network card information A good way to use this command is to redirect output to a file, for e.g. SystemInfo &#62; <a href='http://ntcoder.com/bab/2012/02/09/systeminfo-command/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>To gather system information of a computer running windows use the command &#8216;SystemInfo&#8217;. The command gathers following information&#8230;</p>
<p>1. Operating system information   <br />2. Processor information    <br />3. Input local information    <br />4. Installed hotfix information    <br />5. Network card information</p>
<p>A good way to use this command is to redirect output to a file, for e.g. SystemInfo &gt; D:\SystemInfo.txt. Another option is to run it straight from &quot;Start-&gt;Run-&gt;cmd /c systeminfo &gt; D:\nibu.txt&quot;</p>
<p>Good for creating repro&#8217;s, VM&#8217;s and to know what hotfixes are installed on the machine.</p>
<p>To get help on the command use: SystemInfo /?</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fntcoder.com%2Fbab%2F2012%2F02%2F09%2Fsysteminfo-command%2F&amp;title=systeminfo%20command" id="wpa2a_4"><img src="http://ntcoder.com/bab/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://ntcoder.com/bab/2012/02/09/systeminfo-command/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>__noop intrinsic</title>
		<link>http://ntcoder.com/bab/2012/01/06/__noop-intrinsic/</link>
		<comments>http://ntcoder.com/bab/2012/01/06/__noop-intrinsic/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 19:51:00 +0000</pubDate>
		<dc:creator>Nibu Thomas</dc:creator>
				<category><![CDATA[C++, VC++]]></category>
		<category><![CDATA[Visual C++ Compiler]]></category>
		<category><![CDATA[compiler intrinsics]]></category>
		<category><![CDATA[visual c++]]></category>
		<category><![CDATA[__noop]]></category>

		<guid isPermaLink="false">http://ntcoder.com/bab/?p=2379</guid>
		<description><![CDATA[What do we mean by intrinsic? Most functions are contained in libraries, but some functions are built in (that is, intrinsic) to the compiler. These are referred to as intrinsic functions or intrinsics. Taken from MSDN… The __noop intrinsic specifies that a function should be ignored and the argument list be parsed but no code <a href='http://ntcoder.com/bab/2012/01/06/__noop-intrinsic/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>What do we mean by intrinsic?</p>
<p>Most functions are contained in libraries, but some functions are built in (that is, intrinsic) to the compiler. These are referred to as intrinsic functions or intrinsics.</p>
<p><span style="text-decoration: underline;">Taken from MSDN…</span></p>
<p>The <em>__noop</em> intrinsic specifies that a function should be ignored and the argument list be parsed but no code be generated for the arguments. It is intended for use in global debug functions that take a variable number of arguments.</p>
<p>The compiler converts the <em>__noop</em> intrinsic to 0 at compile time. The following code shows how you could use <em>__noop</em>.<br />
 </p>
<pre class="brush: cpp; title: ; notranslate">// compiler_intrinsics__noop.cpp
// compile with or without /DDEBUG
#include &lt;stdio.h&gt;

#if DEBUG
   #define PRINT   printf_s
#else
   #define PRINT   __noop
#endif

int main()
{
   PRINT(&quot;\nhello\n&quot;);
}</pre>
<p>So if you have custom macros which should expand to nought in release version the proper way to do this would be via <em>__noop</em>. Remember this is Microsoft(R) specific.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fntcoder.com%2Fbab%2F2012%2F01%2F06%2F__noop-intrinsic%2F&amp;title=__noop%20intrinsic" id="wpa2a_6"><img src="http://ntcoder.com/bab/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://ntcoder.com/bab/2012/01/06/__noop-intrinsic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.loadby sos clr fails! Why?</title>
		<link>http://ntcoder.com/bab/2012/01/06/loadby-sos-clr-fails-why/</link>
		<comments>http://ntcoder.com/bab/2012/01/06/loadby-sos-clr-fails-why/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 18:30:00 +0000</pubDate>
		<dc:creator>Nibu Thomas</dc:creator>
				<category><![CDATA[Debugging]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[CLR]]></category>
		<category><![CDATA[loadby]]></category>
		<category><![CDATA[sos]]></category>
		<category><![CDATA[windbg]]></category>

		<guid isPermaLink="false">http://ntcoder.com/bab/?p=2376</guid>
		<description><![CDATA[You have a managed application crash dump and you would like to load sos.dll, to use the powerful commands it provides to help with managed debugging, but the load of sos.dll always fails. The command that you are executing for loading sos.dll is… 0:015&#62; .loadby sos clr Unable to find module &#8216;clr&#8217; On enter you <a href='http://ntcoder.com/bab/2012/01/06/loadby-sos-clr-fails-why/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>You have a managed application crash dump and you would like to load sos.dll, to use the powerful commands it provides to help with managed debugging, but the load of sos.dll always fails. The command that you are executing for loading sos.dll is…</p>
<p>0:015&gt; .loadby sos clr   <br />Unable to find module &#8216;clr&#8217;</p>
<p>On enter you see the above error and you are not sure what is going on. So in order to understand the error message it is important to understand what .loadby command does.</p>
<p>“.loadby sos clr” means load sos.dll from where clr.dll is loaded. So as you might have guessed by now if clr.dll is not loaded then sos.dll cannot be found. This is what the error means when it says “Unable to find module ‘clr’”. All it means is clr.dll is not in the loaded module list which means there is no path to locate clr.dll.</p>
<p>So how can I fix this error? In order to fix this error you must understand that clr.dll has been introduced into .net applications from .net 4.0 and prior to that we used to have mscorwks.dll. So if your .net application is not a 4.0 app then clr.dll won’t be loaded, yes you will have to use mscorwks.dll instead…</p>
<p>0:015&gt; .loadby sos mscorwks   </p>
<p>But you are damn sure that the application that crashed is a .net 4.0 application but you still see the error! All I can say is clr.dll is not loaded. Wait for it to load or break on its load and then execute .loadby sos clr.</p>
<p>So how to break on a module load…   <br />0:015&gt; sxe ld clr</p>
<p>This will for sure help!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fntcoder.com%2Fbab%2F2012%2F01%2F06%2Floadby-sos-clr-fails-why%2F&amp;title=.loadby%20sos%20clr%20fails%21%20Why%3F" id="wpa2a_8"><img src="http://ntcoder.com/bab/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://ntcoder.com/bab/2012/01/06/loadby-sos-clr-fails-why/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hidden VC++ compiler switches: /d1reportSingleClassLayoutSomeType</title>
		<link>http://ntcoder.com/bab/2011/11/15/hidden-vc-compiler-switches-d1reportsingleclasslayoutsometype/</link>
		<comments>http://ntcoder.com/bab/2011/11/15/hidden-vc-compiler-switches-d1reportsingleclasslayoutsometype/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 15:53:38 +0000</pubDate>
		<dc:creator>Nibu Thomas</dc:creator>
				<category><![CDATA[C++, VC++]]></category>
		<category><![CDATA[d1reportSingleClassLayoutSomeType]]></category>
		<category><![CDATA[Hidden compiler options]]></category>
		<category><![CDATA[VC++ Compiler option]]></category>

		<guid isPermaLink="false">http://ntcoder.com/bab/2011/11/15/hidden-vc-compiler-switches-d1reportsingleclasslayoutsometype/</guid>
		<description><![CDATA[Did you ever want to know how a C++ class was laid out by VC++ compiler? There are few hidden switches which are not known to many hence would like to share those with my blog readers. So I will blog about these switches one by one. So for today the switch I’m going to <a href='http://ntcoder.com/bab/2011/11/15/hidden-vc-compiler-switches-d1reportsingleclasslayoutsometype/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Did you ever want to know how a C++ class was laid out by VC++ compiler? There are few hidden switches which are not known to many hence would like to share those with my blog readers.</p>
<p>So I will blog about these switches one by one. So for today the switch I’m going to discuss is: <em>/d1reportSingleClassLayoutSomeType. SomeType</em> in the name is just a placeholder for actual class name.</p>
<p>So for a demo we know that there is a class called <em>CDialog</em> in MFC. So create a sample MFC project and add the following command line manually to the project’s settings. Goto <em>C/C++-&gt;CommandLine-&gt;Additional Options</em> and enter <em>/d1reportSingleClassLayoutCDialog </em>manually into the additional options edit control, as shown in the screenshot below…</p>
<p><a href="http://ntcoder.com/bab/wp-content/uploads/2011/11/image.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="MFC Project Properties" src="http://ntcoder.com/bab/wp-content/uploads/2011/11/image_thumb.png" alt="MFC Project Properties" width="487" height="346" border="0" /></a></p>
<p>Once you are done rebuild your project. When I rebuild this is what I see in my output window. You will see the structure of <em>CDialog</em> laid out in the output window. Please know that <em>CDialog</em> is a huge class with several virtual functions hence the output is pretty long.</p>
<pre class="brush: cpp; title: ; notranslate">1&gt;------ Rebuild All started: Project: MFCTest, Configuration: Debug Win32 ------
1&gt;  stdafx.cpp
1&gt;  class CDialog size(148):
1&gt;   +---
1&gt;   | +--- (base class CWnd)
1&gt;   | | +--- (base class CCmdTarget)
1&gt;   | | | +--- (base class CObject)
1&gt;   0 | | | | {vfptr}
1&gt;   | | | +---
1&gt;   4 | | | m_dwRef
1&gt;   8 | | | m_pOuterUnknown
1&gt;  12 | | | m_xInnerUnknown
1&gt;  16 | | | XDispatch m_xDispatch
1&gt;  20 | | | m_bResultExpected
1&gt;  24 | | | XConnPtContainer m_xConnPtContainer
1&gt;  28 | | | m_pModuleState
1&gt;   | | +---
1&gt;  32 | | m_hWnd
1&gt;  36 | | m_bEnableActiveAccessibility
1&gt;     | | &lt;alignment member&gt; (size=3)
1&gt;  40 | | m_pStdObject
1&gt;  44 | | m_pProxy
1&gt;  48 | | XAccessible m_xAccessible
1&gt;  52 | | XAccessibleServer m_xAccessibleServer
1&gt;  56 | | m_bIsTouchWindowRegistered
1&gt;  60 | | CPoint m_ptGestureFrom
1&gt;  68 | | m_ulGestureArg
1&gt;  76 | | m_bGestureInited
1&gt;  80 | | m_pCurrentGestureInfo
1&gt;  84 | | m_hWndOwner
1&gt;  88 | | m_nFlags
1&gt;  92 | | m_pfnSuper
1&gt;  96 | | m_nModalResult
1&gt;  100 | | m_pDropTarget
1&gt;  104 | | m_pCtrlCont
1&gt;  108 | | m_pCtrlSite
1&gt;  112 | | m_pMFCCtrlContainer
1&gt;   | +---
1&gt;  116 | m_nIDHelp
1&gt;  120 | m_lpszTemplateName
1&gt;  124 | m_hDialogTemplate
1&gt;  128 | m_lpDialogTemplate
1&gt;  132 | m_lpDialogInit
1&gt;  136 | m_pParentWnd
1&gt;  140 | m_hWndTop
1&gt;  144 | m_pOccDialogInfo
1&gt;   +---
1&gt; 
1&gt;  CDialog::$vftable@:
1&gt;   | &amp;CDialog_meta
1&gt;   |  0
1&gt;   0 | &amp;CDialog::GetRuntimeClass
1&gt;   1 | &amp;CDialog::{dtor}
1&gt;   2 | &amp;CObject::Serialize
1&gt;   3 | &amp;CDialog::AssertValid
1&gt;   4 | &amp;CDialog::Dump
1&gt;   5 | &amp;CDialog::OnCmdMsg
1&gt;   6 | &amp;CWnd::OnFinalRelease
1&gt;   7 | &amp;CCmdTarget::IsInvokeAllowed
1&gt;   8 | &amp;CCmdTarget::GetDispatchIID
1&gt;   9 | &amp;CCmdTarget::GetTypeInfoCount
1&gt;  10 | &amp;CCmdTarget::GetTypeLibCache
1&gt;  11 | &amp;CCmdTarget::GetTypeLib
1&gt;  12 | &amp;CDialog::GetMessageMap
1&gt;  13 | &amp;CCmdTarget::GetCommandMap
1&gt;  14 | &amp;CCmdTarget::GetDispatchMap
1&gt;  15 | &amp;CCmdTarget::GetConnectionMap
1&gt;  16 | &amp;CWnd::GetInterfaceMap
1&gt;  17 | &amp;CCmdTarget::GetEventSinkMap
1&gt;  18 | &amp;CCmdTarget::OnCreateAggregates
1&gt;  19 | &amp;CCmdTarget::GetInterfaceHook
1&gt;  20 | &amp;CCmdTarget::GetExtraConnectionPoints
1&gt;  21 | &amp;CCmdTarget::GetConnectionHook
1&gt;  22 | &amp;CWnd::PreSubclassWindow
1&gt;  23 | &amp;CWnd::Create
1&gt;  24 | &amp;CWnd::CreateEx
1&gt;  25 | &amp;CWnd::CreateEx
1&gt;  26 | &amp;CWnd::DestroyWindow
1&gt;  27 | &amp;CWnd::PreCreateWindow
1&gt;  28 | &amp;CWnd::CalcWindowRect
1&gt;  29 | &amp;CWnd::GetMenu
1&gt;  30 | &amp;CWnd::SetMenu
1&gt;  31 | &amp;CWnd::OnToolHitTest
1&gt;  32 | &amp;CWnd::GetScrollBarCtrl
1&gt;  33 | &amp;CWnd::WinHelpW
1&gt;  34 | &amp;CWnd::HtmlHelpW
1&gt;  35 | &amp;CWnd::WinHelpInternal
1&gt;  36 | &amp;CWnd::ContinueModal
1&gt;  37 | &amp;CWnd::EndModalLoop
1&gt;  38 | &amp;CWnd::OnDrawIconicThumbnailOrLivePreview
1&gt;  39 | &amp;CWnd::EnsureStdObj
1&gt;  40 | &amp;CWnd::get_accParent
1&gt;  41 | &amp;CWnd::get_accChildCount
1&gt;  42 | &amp;CWnd::get_accChild
1&gt;  43 | &amp;CWnd::get_accName
1&gt;  44 | &amp;CWnd::get_accValue
1&gt;  45 | &amp;CWnd::get_accDescription
1&gt;  46 | &amp;CWnd::get_accRole
1&gt;  47 | &amp;CWnd::get_accState
1&gt;  48 | &amp;CWnd::get_accHelp
1&gt;  49 | &amp;CWnd::get_accHelpTopic
1&gt;  50 | &amp;CWnd::get_accKeyboardShortcut
1&gt;  51 | &amp;CWnd::get_accFocus
1&gt;  52 | &amp;CWnd::get_accSelection
1&gt;  53 | &amp;CWnd::get_accDefaultAction
1&gt;  54 | &amp;CWnd::accSelect
1&gt;  55 | &amp;CWnd::accLocation
1&gt;  56 | &amp;CWnd::accNavigate
1&gt;  57 | &amp;CWnd::accHitTest
1&gt;  58 | &amp;CWnd::accDoDefaultAction
1&gt;  59 | &amp;CWnd::put_accName
1&gt;  60 | &amp;CWnd::put_accValue
1&gt;  61 | &amp;CWnd::SetProxy
1&gt;  62 | &amp;CWnd::CreateAccessibleProxy
1&gt;  63 | &amp;CWnd::OnCommand
1&gt;  64 | &amp;CWnd::OnNotify
1&gt;  65 | &amp;CWnd::GetSuperWndProcAddr
1&gt;  66 | &amp;CWnd::DoDataExchange
1&gt;  67 | &amp;CWnd::BeginModalState
1&gt;  68 | &amp;CWnd::EndModalState
1&gt;  69 | &amp;CDialog::PreTranslateMessage
1&gt;  70 | &amp;CWnd::OnAmbientProperty
1&gt;  71 | &amp;CWnd::WindowProc
1&gt;  72 | &amp;CWnd::OnWndMsg
1&gt;  73 | &amp;CWnd::DefWindowProcW
1&gt;  74 | &amp;CWnd::PostNcDestroy
1&gt;  75 | &amp;CWnd::OnChildNotify
1&gt;  76 | &amp;CWnd::OnTouchInputs
1&gt;  77 | &amp;CWnd::OnTouchInput
1&gt;  78 | &amp;CWnd::GetGestureStatus
1&gt;  79 | &amp;CWnd::OnGestureZoom
1&gt;  80 | &amp;CWnd::OnGesturePan
1&gt;  81 | &amp;CWnd::OnGestureRotate
1&gt;  82 | &amp;CWnd::OnGestureTwoFingerTap
1&gt;  83 | &amp;CWnd::OnGesturePressAndTap
1&gt;  84 | &amp;CDialog::CheckAutoCenter
1&gt;  85 | &amp;CWnd::IsFrameWnd
1&gt;  86 | &amp;CWnd::CreateControlContainer
1&gt;  87 | &amp;CWnd::CreateControlSite
1&gt;  88 | &amp;CDialog::SetOccDialogInfo
1&gt;  89 | &amp;CDialog::GetOccDialogInfo
1&gt;  90 | &amp;CDialog::Create
1&gt;  91 | &amp;CDialog::Create
1&gt;  92 | &amp;CDialog::CreateIndirect
1&gt;  93 | &amp;CDialog::CreateIndirect
1&gt;  94 | &amp;CDialog::DoModal
1&gt;  95 | &amp;CDialog::OnInitDialog
1&gt;  96 | &amp;CDialog::OnSetFont
1&gt;  97 | &amp;CDialog::OnOK
1&gt;  98 | &amp;CDialog::OnCancel
1&gt;  99 | &amp;CDialog::PreInitDialog
1&gt; 
1&gt;  CDialog::GetRuntimeClass this adjustor: 0
1&gt;  CDialog::Create this adjustor: 0
1&gt;  CDialog::Create this adjustor: 0
1&gt;  CDialog::CreateIndirect this adjustor: 0
1&gt;  CDialog::CreateIndirect this adjustor: 0
1&gt;  CDialog::DoModal this adjustor: 0
1&gt;  CDialog::OnInitDialog this adjustor: 0
1&gt;  CDialog::OnSetFont this adjustor: 0
1&gt;  CDialog::OnOK this adjustor: 0
1&gt;  CDialog::OnCancel this adjustor: 0
1&gt;  CDialog::{dtor} this adjustor: 0
1&gt;  CDialog::AssertValid this adjustor: 0
1&gt;  CDialog::Dump this adjustor: 0
1&gt;  CDialog::PreTranslateMessage this adjustor: 0
1&gt;  CDialog::OnCmdMsg this adjustor: 0
1&gt;  CDialog::CheckAutoCenter this adjustor: 0
1&gt;  CDialog::SetOccDialogInfo this adjustor: 0
1&gt;  CDialog::GetOccDialogInfo this adjustor: 0
1&gt;  CDialog::PreInitDialog this adjustor: 0
1&gt;  CDialog::GetMessageMap this adjustor: 0
1&gt;  CDialog::__delDtor this adjustor: 0
1&gt;  CDialog::__vecDelDtor this adjustor: 0
1&gt; 
1&gt; 
1&gt;  class CDialogBar size(200):
1&gt;   +---
1&gt;   | +--- (base class CControlBar)
1&gt;   | | +--- (base class CWnd)
1&gt;   | | | +--- (base class CCmdTarget)
1&gt;   | | | | +--- (base class CObject)
1&gt;   0 | | | | | {vfptr}
1&gt;   | | | | +---
1&gt;   4 | | | | m_dwRef
1&gt;   8 | | | | m_pOuterUnknown
1&gt;  12 | | | | m_xInnerUnknown
1&gt;  16 | | | | XDispatch m_xDispatch
1&gt;  20 | | | | m_bResultExpected
1&gt;  24 | | | | XConnPtContainer m_xConnPtContainer
1&gt;  28 | | | | m_pModuleState
1&gt;   | | | +---
1&gt;  32 | | | m_hWnd
1&gt;  36 | | | m_bEnableActiveAccessibility
1&gt;     | | | &lt;alignment member&gt; (size=3)
1&gt;  40 | | | m_pStdObject
1&gt;  44 | | | m_pProxy
1&gt;  48 | | | XAccessible m_xAccessible
1&gt;  52 | | | XAccessibleServer m_xAccessibleServer
1&gt;  56 | | | m_bIsTouchWindowRegistered
1&gt;  60 | | | CPoint m_ptGestureFrom
1&gt;  68 | | | m_ulGestureArg
1&gt;  76 | | | m_bGestureInited
1&gt;  80 | | | m_pCurrentGestureInfo
1&gt;  84 | | | m_hWndOwner
1&gt;  88 | | | m_nFlags
1&gt;  92 | | | m_pfnSuper
1&gt;  96 | | | m_nModalResult
1&gt;  100 | | | m_pDropTarget
1&gt;  104 | | | m_pCtrlCont
1&gt;  108 | | | m_pCtrlSite
1&gt;  112 | | | m_pMFCCtrlContainer
1&gt;   | | +---
1&gt;  116 | | m_pInPlaceOwner
1&gt;  120 | | m_bAutoDelete
1&gt;  124 | | m_cxLeftBorder
1&gt;  128 | | m_cxRightBorder
1&gt;  132 | | m_cyTopBorder
1&gt;  136 | | m_cyBottomBorder
1&gt;  140 | | m_cxDefaultGap
1&gt;  144 | | m_nMRUWidth
1&gt;  148 | | m_nCount
1&gt;  152 | | m_pData
1&gt;  156 | | m_hReBarTheme
1&gt;  160 | | m_nStateFlags
1&gt;  164 | | m_dwStyle
1&gt;  168 | | m_dwDockStyle
1&gt;  172 | | m_pDockSite
1&gt;  176 | | m_pDockBar
1&gt;  180 | | m_pDockContext
1&gt;   | +---
1&gt;  184 | CSize m_sizeDefault
1&gt;  192 | m_pOccDialogInfo
1&gt;  196 | m_lpszTemplateName
1&gt;   +---
1&gt; 
1&gt;  CDialogBar::$vftable@:
1&gt;   | &amp;CDialogBar_meta
1&gt;   |  0
1&gt;   0 | &amp;CDialogBar::GetRuntimeClass
1&gt;   1 | &amp;CDialogBar::{dtor}
1&gt;   2 | &amp;CObject::Serialize
1&gt;   3 | &amp;CControlBar::AssertValid
1&gt;   4 | &amp;CControlBar::Dump
1&gt;   5 | &amp;CCmdTarget::OnCmdMsg
1&gt;   6 | &amp;CWnd::OnFinalRelease
1&gt;   7 | &amp;CCmdTarget::IsInvokeAllowed
1&gt;   8 | &amp;CCmdTarget::GetDispatchIID
1&gt;   9 | &amp;CCmdTarget::GetTypeInfoCount
1&gt;  10 | &amp;CCmdTarget::GetTypeLibCache
1&gt;  11 | &amp;CCmdTarget::GetTypeLib
1&gt;  12 | &amp;CDialogBar::GetMessageMap
1&gt;  13 | &amp;CCmdTarget::GetCommandMap
1&gt;  14 | &amp;CCmdTarget::GetDispatchMap
1&gt;  15 | &amp;CCmdTarget::GetConnectionMap
1&gt;  16 | &amp;CWnd::GetInterfaceMap
1&gt;  17 | &amp;CCmdTarget::GetEventSinkMap
1&gt;  18 | &amp;CCmdTarget::OnCreateAggregates
1&gt;  19 | &amp;CCmdTarget::GetInterfaceHook
1&gt;  20 | &amp;CCmdTarget::GetExtraConnectionPoints
1&gt;  21 | &amp;CCmdTarget::GetConnectionHook
1&gt;  22 | &amp;CWnd::PreSubclassWindow
1&gt;  23 | &amp;CWnd::Create
1&gt;  24 | &amp;CWnd::CreateEx
1&gt;  25 | &amp;CWnd::CreateEx
1&gt;  26 | &amp;CControlBar::DestroyWindow
1&gt;  27 | &amp;CControlBar::PreCreateWindow
1&gt;  28 | &amp;CWnd::CalcWindowRect
1&gt;  29 | &amp;CWnd::GetMenu
1&gt;  30 | &amp;CWnd::SetMenu
1&gt;  31 | &amp;CWnd::OnToolHitTest
1&gt;  32 | &amp;CWnd::GetScrollBarCtrl
1&gt;  33 | &amp;CWnd::WinHelpW
1&gt;  34 | &amp;CWnd::HtmlHelpW
1&gt;  35 | &amp;CWnd::WinHelpInternal
1&gt;  36 | &amp;CWnd::ContinueModal
1&gt;  37 | &amp;CWnd::EndModalLoop
1&gt;  38 | &amp;CWnd::OnDrawIconicThumbnailOrLivePreview
1&gt;  39 | &amp;CWnd::EnsureStdObj
1&gt;  40 | &amp;CWnd::get_accParent
1&gt;  41 | &amp;CWnd::get_accChildCount
1&gt;  42 | &amp;CWnd::get_accChild
1&gt;  43 | &amp;CWnd::get_accName
1&gt;  44 | &amp;CWnd::get_accValue
1&gt;  45 | &amp;CWnd::get_accDescription
1&gt;  46 | &amp;CWnd::get_accRole
1&gt;  47 | &amp;CWnd::get_accState
1&gt;  48 | &amp;CWnd::get_accHelp
1&gt;  49 | &amp;CWnd::get_accHelpTopic
1&gt;  50 | &amp;CWnd::get_accKeyboardShortcut
1&gt;  51 | &amp;CWnd::get_accFocus
1&gt;  52 | &amp;CWnd::get_accSelection
1&gt;  53 | &amp;CWnd::get_accDefaultAction
1&gt;  54 | &amp;CWnd::accSelect
1&gt;  55 | &amp;CWnd::accLocation
1&gt;  56 | &amp;CWnd::accNavigate
1&gt;  57 | &amp;CWnd::accHitTest
1&gt;  58 | &amp;CWnd::accDoDefaultAction
1&gt;  59 | &amp;CWnd::put_accName
1&gt;  60 | &amp;CWnd::put_accValue
1&gt;  61 | &amp;CWnd::SetProxy
1&gt;  62 | &amp;CWnd::CreateAccessibleProxy
1&gt;  63 | &amp;CWnd::OnCommand
1&gt;  64 | &amp;CWnd::OnNotify
1&gt;  65 | &amp;CWnd::GetSuperWndProcAddr
1&gt;  66 | &amp;CWnd::DoDataExchange
1&gt;  67 | &amp;CWnd::BeginModalState
1&gt;  68 | &amp;CWnd::EndModalState
1&gt;  69 | &amp;CControlBar::PreTranslateMessage
1&gt;  70 | &amp;CWnd::OnAmbientProperty
1&gt;  71 | &amp;CControlBar::WindowProc
1&gt;  72 | &amp;CWnd::OnWndMsg
1&gt;  73 | &amp;CWnd::DefWindowProcW
1&gt;  74 | &amp;CControlBar::PostNcDestroy
1&gt;  75 | &amp;CWnd::OnChildNotify
1&gt;  76 | &amp;CWnd::OnTouchInputs
1&gt;  77 | &amp;CWnd::OnTouchInput
1&gt;  78 | &amp;CWnd::GetGestureStatus
1&gt;  79 | &amp;CWnd::OnGestureZoom
1&gt;  80 | &amp;CWnd::OnGesturePan
1&gt;  81 | &amp;CWnd::OnGestureRotate
1&gt;  82 | &amp;CWnd::OnGestureTwoFingerTap
1&gt;  83 | &amp;CWnd::OnGesturePressAndTap
1&gt;  84 | &amp;CWnd::CheckAutoCenter
1&gt;  85 | &amp;CWnd::IsFrameWnd
1&gt;  86 | &amp;CWnd::CreateControlContainer
1&gt;  87 | &amp;CWnd::CreateControlSite
1&gt;  88 | &amp;CDialogBar::SetOccDialogInfo
1&gt;  89 | &amp;CWnd::GetOccDialogInfo
1&gt;  90 | &amp;CDialogBar::CalcFixedLayout
1&gt;  91 | &amp;CControlBar::CalcDynamicLayout
1&gt;  92 | &amp;CDialogBar::OnUpdateCmdUI
1&gt;  93 | &amp;CControlBar::CalcInsideRect
1&gt;  94 | &amp;CControlBar::DoPaint
1&gt;  95 | &amp;CControlBar::DrawBorders
1&gt;  96 | &amp;CControlBar::DrawGripper
1&gt;  97 | &amp;CControlBar::DrawNCGripper
1&gt;  98 | &amp;CControlBar::DrawThemedGripper
1&gt;  99 | &amp;CControlBar::DrawNonThemedGripper
1&gt;  100 | &amp;CControlBar::DelayShow
1&gt;  101 | &amp;CControlBar::IsVisible
1&gt;  102 | &amp;CControlBar::RecalcDelayShow
1&gt;  103 | &amp;CControlBar::IsDockBar
1&gt;  104 | &amp;CControlBar::OnBarStyleChange
1&gt;  105 | &amp;CControlBar::SetStatusText
1&gt;  106 | &amp;CDialogBar::Create
1&gt;  107 | &amp;CDialogBar::Create
1&gt; 
1&gt;  CDialogBar::GetRuntimeClass this adjustor: 0
1&gt;  CDialogBar::Create this adjustor: 0
1&gt;  CDialogBar::Create this adjustor: 0
1&gt;  CDialogBar::{dtor} this adjustor: 0
1&gt;  CDialogBar::CalcFixedLayout this adjustor: 0
1&gt;  CDialogBar::OnUpdateCmdUI this adjustor: 0
1&gt;  CDialogBar::SetOccDialogInfo this adjustor: 0
1&gt;  CDialogBar::GetMessageMap this adjustor: 0
1&gt;  CDialogBar::__delDtor this adjustor: 0
1&gt;  CDialogBar::__vecDelDtor this adjustor: 0
1&gt; 
1&gt; 
1&gt;  class CDialogImpl size(8):
1&gt;   +---
1&gt;   0 | {vfptr}
1&gt;   4 | m_Dlg
1&gt;   +---
1&gt; 
1&gt;  CDialogImpl::$vftable@:
1&gt;   | &amp;CDialogImpl_meta
1&gt;   |  0
1&gt;   0 | &amp;CDialogImpl::{dtor}
1&gt; 
1&gt;  CDialogImpl::{dtor} this adjustor: 0
1&gt;  CDialogImpl::__delDtor this adjustor: 0
1&gt;  CDialogImpl::__vecDelDtor this adjustor: 0
1&gt; 
1&gt; 
1&gt;  class CDialogEx size(184):
1&gt;   +---
1&gt;   | +--- (base class CDialog)
1&gt;   | | +--- (base class CWnd)
1&gt;   | | | +--- (base class CCmdTarget)
1&gt;   | | | | +--- (base class CObject)
1&gt;   0 | | | | | {vfptr}
1&gt;   | | | | +---
1&gt;   4 | | | | m_dwRef
1&gt;   8 | | | | m_pOuterUnknown
1&gt;  12 | | | | m_xInnerUnknown
1&gt;  16 | | | | XDispatch m_xDispatch
1&gt;  20 | | | | m_bResultExpected
1&gt;  24 | | | | XConnPtContainer m_xConnPtContainer
1&gt;  28 | | | | m_pModuleState
1&gt;   | | | +---
1&gt;  32 | | | m_hWnd
1&gt;  36 | | | m_bEnableActiveAccessibility
1&gt;     | | | &lt;alignment member&gt; (size=3)
1&gt;  40 | | | m_pStdObject
1&gt;  44 | | | m_pProxy
1&gt;  48 | | | XAccessible m_xAccessible
1&gt;  52 | | | XAccessibleServer m_xAccessibleServer
1&gt;  56 | | | m_bIsTouchWindowRegistered
1&gt;  60 | | | CPoint m_ptGestureFrom
1&gt;  68 | | | m_ulGestureArg
1&gt;  76 | | | m_bGestureInited
1&gt;  80 | | | m_pCurrentGestureInfo
1&gt;  84 | | | m_hWndOwner
1&gt;  88 | | | m_nFlags
1&gt;  92 | | | m_pfnSuper
1&gt;  96 | | | m_nModalResult
1&gt;  100 | | | m_pDropTarget
1&gt;  104 | | | m_pCtrlCont
1&gt;  108 | | | m_pCtrlSite
1&gt;  112 | | | m_pMFCCtrlContainer
1&gt;   | | +---
1&gt;  116 | | m_nIDHelp
1&gt;  120 | | m_lpszTemplateName
1&gt;  124 | | m_hDialogTemplate
1&gt;  128 | | m_lpDialogTemplate
1&gt;  132 | | m_lpDialogInit
1&gt;  136 | | m_pParentWnd
1&gt;  140 | | m_hWndTop
1&gt;  144 | | m_pOccDialogInfo
1&gt;   | +---
1&gt;  148 | m_hBkgrBitmap
1&gt;  152 | CSize m_sizeBkgrBitmap
1&gt;  160 | CBrush m_brBkgr
1&gt;  168 | BackgroundLocation m_BkgrLocation
1&gt;  172 | CDialogImpl m_Impl
1&gt;  180 | m_bAutoDestroyBmp
1&gt;   +---
1&gt; 
1&gt;  CDialogEx::$vftable@:
1&gt;   | &amp;CDialogEx_meta
1&gt;   |  0
1&gt;   0 | &amp;CDialogEx::GetRuntimeClass
1&gt;   1 | &amp;CDialogEx::{dtor}
1&gt;   2 | &amp;CObject::Serialize
1&gt;   3 | &amp;CDialog::AssertValid
1&gt;   4 | &amp;CDialog::Dump
1&gt;   5 | &amp;CDialog::OnCmdMsg
1&gt;   6 | &amp;CWnd::OnFinalRelease
1&gt;   7 | &amp;CCmdTarget::IsInvokeAllowed
1&gt;   8 | &amp;CCmdTarget::GetDispatchIID
1&gt;   9 | &amp;CCmdTarget::GetTypeInfoCount
1&gt;  10 | &amp;CCmdTarget::GetTypeLibCache
1&gt;  11 | &amp;CCmdTarget::GetTypeLib
1&gt;  12 | &amp;CDialogEx::GetMessageMap
1&gt;  13 | &amp;CCmdTarget::GetCommandMap
1&gt;  14 | &amp;CCmdTarget::GetDispatchMap
1&gt;  15 | &amp;CCmdTarget::GetConnectionMap
1&gt;  16 | &amp;CWnd::GetInterfaceMap
1&gt;  17 | &amp;CCmdTarget::GetEventSinkMap
1&gt;  18 | &amp;CCmdTarget::OnCreateAggregates
1&gt;  19 | &amp;CCmdTarget::GetInterfaceHook
1&gt;  20 | &amp;CCmdTarget::GetExtraConnectionPoints
1&gt;  21 | &amp;CCmdTarget::GetConnectionHook
1&gt;  22 | &amp;CWnd::PreSubclassWindow
1&gt;  23 | &amp;CWnd::Create
1&gt;  24 | &amp;CWnd::CreateEx
1&gt;  25 | &amp;CWnd::CreateEx
1&gt;  26 | &amp;CWnd::DestroyWindow
1&gt;  27 | &amp;CWnd::PreCreateWindow
1&gt;  28 | &amp;CWnd::CalcWindowRect
1&gt;  29 | &amp;CWnd::GetMenu
1&gt;  30 | &amp;CWnd::SetMenu
1&gt;  31 | &amp;CWnd::OnToolHitTest
1&gt;  32 | &amp;CWnd::GetScrollBarCtrl
1&gt;  33 | &amp;CWnd::WinHelpW
1&gt;  34 | &amp;CWnd::HtmlHelpW
1&gt;  35 | &amp;CWnd::WinHelpInternal
1&gt;  36 | &amp;CWnd::ContinueModal
1&gt;  37 | &amp;CWnd::EndModalLoop
1&gt;  38 | &amp;CWnd::OnDrawIconicThumbnailOrLivePreview
1&gt;  39 | &amp;CWnd::EnsureStdObj
1&gt;  40 | &amp;CWnd::get_accParent
1&gt;  41 | &amp;CWnd::get_accChildCount
1&gt;  42 | &amp;CWnd::get_accChild
1&gt;  43 | &amp;CWnd::get_accName
1&gt;  44 | &amp;CWnd::get_accValue
1&gt;  45 | &amp;CWnd::get_accDescription
1&gt;  46 | &amp;CWnd::get_accRole
1&gt;  47 | &amp;CWnd::get_accState
1&gt;  48 | &amp;CWnd::get_accHelp
1&gt;  49 | &amp;CWnd::get_accHelpTopic
1&gt;  50 | &amp;CWnd::get_accKeyboardShortcut
1&gt;  51 | &amp;CWnd::get_accFocus
1&gt;  52 | &amp;CWnd::get_accSelection
1&gt;  53 | &amp;CWnd::get_accDefaultAction
1&gt;  54 | &amp;CWnd::accSelect
1&gt;  55 | &amp;CWnd::accLocation
1&gt;  56 | &amp;CWnd::accNavigate
1&gt;  57 | &amp;CWnd::accHitTest
1&gt;  58 | &amp;CWnd::accDoDefaultAction
1&gt;  59 | &amp;CWnd::put_accName
1&gt;  60 | &amp;CWnd::put_accValue
1&gt;  61 | &amp;CWnd::SetProxy
1&gt;  62 | &amp;CWnd::CreateAccessibleProxy
1&gt;  63 | &amp;CDialogEx::OnCommand
1&gt;  64 | &amp;CWnd::OnNotify
1&gt;  65 | &amp;CWnd::GetSuperWndProcAddr
1&gt;  66 | &amp;CWnd::DoDataExchange
1&gt;  67 | &amp;CWnd::BeginModalState
1&gt;  68 | &amp;CWnd::EndModalState
1&gt;  69 | &amp;CDialogEx::PreTranslateMessage
1&gt;  70 | &amp;CWnd::OnAmbientProperty
1&gt;  71 | &amp;CWnd::WindowProc
1&gt;  72 | &amp;CWnd::OnWndMsg
1&gt;  73 | &amp;CWnd::DefWindowProcW
1&gt;  74 | &amp;CWnd::PostNcDestroy
1&gt;  75 | &amp;CWnd::OnChildNotify
1&gt;  76 | &amp;CWnd::OnTouchInputs
1&gt;  77 | &amp;CWnd::OnTouchInput
1&gt;  78 | &amp;CWnd::GetGestureStatus
1&gt;  79 | &amp;CWnd::OnGestureZoom
1&gt;  80 | &amp;CWnd::OnGesturePan
1&gt;  81 | &amp;CWnd::OnGestureRotate
1&gt;  82 | &amp;CWnd::OnGestureTwoFingerTap
1&gt;  83 | &amp;CWnd::OnGesturePressAndTap
1&gt;  84 | &amp;CDialog::CheckAutoCenter
1&gt;  85 | &amp;CWnd::IsFrameWnd
1&gt;  86 | &amp;CWnd::CreateControlContainer
1&gt;  87 | &amp;CWnd::CreateControlSite
1&gt;  88 | &amp;CDialog::SetOccDialogInfo
1&gt;  89 | &amp;CDialog::GetOccDialogInfo
1&gt;  90 | &amp;CDialog::Create
1&gt;  91 | &amp;CDialog::Create
1&gt;  92 | &amp;CDialog::CreateIndirect
1&gt;  93 | &amp;CDialog::CreateIndirect
1&gt;  94 | &amp;CDialog::DoModal
1&gt;  95 | &amp;CDialog::OnInitDialog
1&gt;  96 | &amp;CDialog::OnSetFont
1&gt;  97 | &amp;CDialog::OnOK
1&gt;  98 | &amp;CDialog::OnCancel
1&gt;  99 | &amp;CDialog::PreInitDialog
1&gt; 
1&gt;  CDialogEx::GetRuntimeClass this adjustor: 0
1&gt;  CDialogEx::PreTranslateMessage this adjustor: 0
1&gt;  CDialogEx::OnCommand this adjustor: 0
1&gt;  CDialogEx::GetMessageMap this adjustor: 0
1&gt;  CDialogEx::{dtor} this adjustor: 0
1&gt;  CDialogEx::__delDtor this adjustor: 0
1&gt;  CDialogEx::__vecDelDtor this adjustor: 0
1&gt; 
1&gt; 
1&gt;  class CDialogTemplate size(12):
1&gt;   +---
1&gt;   0 | m_hTemplate
1&gt;   4 | m_dwTemplateSize
1&gt;   8 | m_bSystemFont
1&gt;   +---
1&gt; 
1&gt; 
1&gt; 
1&gt;  MFCTestDlg.cpp
1&gt;  MFCTest.cpp
1&gt;  Generating Code...
1&gt;  MFCTest.vcxproj -&gt; C:\MFCTraining\MFCTest\Debug\MFCTest.exe
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========</pre>
<p>Hope this helps you have a better understanding of how classes are laid out by the Visual C++ compiler.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fntcoder.com%2Fbab%2F2011%2F11%2F15%2Fhidden-vc-compiler-switches-d1reportsingleclasslayoutsometype%2F&amp;title=Hidden%20VC%2B%2B%20compiler%20switches%3A%20%2Fd1reportSingleClassLayoutSomeType" id="wpa2a_10"><img src="http://ntcoder.com/bab/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://ntcoder.com/bab/2011/11/15/hidden-vc-compiler-switches-d1reportsingleclasslayoutsometype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convert a VB6 project to VB.net Visual Studio 2010</title>
		<link>http://ntcoder.com/bab/2011/09/20/convert-a-vb6-project-to-vb-net-visual-studio-2010/</link>
		<comments>http://ntcoder.com/bab/2011/09/20/convert-a-vb6-project-to-vb-net-visual-studio-2010/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 18:58:39 +0000</pubDate>
		<dc:creator>Nibu Thomas</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[VB]]></category>
		<category><![CDATA[VB6 to VB.net 2010]]></category>
		<category><![CDATA[Visual studio 2010]]></category>

		<guid isPermaLink="false">http://ntcoder.com/bab/?p=2335</guid>
		<description><![CDATA[Are you having trouble converting VB6 project to VB.net Visual Studio 2010. Well just to be frank you should have long back converted this VB6 project of yours to VB.net. VB6 is ancient and just because your code works doesn&#8217;t mean that you won&#8217;t migrate it to a newer platform. In my opinion let your <a href='http://ntcoder.com/bab/2011/09/20/convert-a-vb6-project-to-vb-net-visual-studio-2010/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Are you having trouble converting VB6 project to VB.net Visual Studio 2010. Well just to be frank you should have long back converted this VB6 project of yours to VB.net. VB6 is ancient and just because your code works doesn&#8217;t mean that you won&#8217;t migrate it to a newer platform. In my opinion let your customers use the VB6 project of yours while you in the background should have converted a copy of it to VB.net. Now you might say it&#8217;s too much work&#8230; well how about it now. <img src='http://ntcoder.com/bab/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Just to be clear Visual Studio 2010 does NOT inherently support converting VB6 project to VB.net 2010. When I force a conversion (via project open dialog) I get the following error dialog&#8230;</p>
<div id="attachment_2336" class="wp-caption alignnone" style="width: 451px"><a href="http://ntcoder.com/bab/2011/09/20/convert-a-vb6-project-to-vb-net-visual-studio-2010/vb6-to-vb-net-2010-conversion-error/" rel="attachment wp-att-2336"><img class="size-full wp-image-2336" title="VB6 to VB.net 2010 - Conversion Error" src="http://ntcoder.com/bab/wp-content/uploads/2011/09/VB6-to-VB.net-2010-Conversion-Error.png" alt="VB6 to VB.net 2010 - Conversion Error" width="441" height="184" /></a><p class="wp-caption-text">VB6 to VB.net 2010 - Conversion Error</p></div>
<p>Recently Mr. X asked me this question so I sent him an email with the steps on converting a VB6 project to VB.net Visual Studio 2010. So here are the steps (straight from the email I sent to the customer&#8230;)</p>
<ol>
<li>Make sure VB 6.0 with SP 6.0 installed on the machine.</li>
<li>Make sure that all the referenced components (ActiveX dll, OCX) for the VB 6.0 application is available on the machine.</li>
<li>Open the VB 6.0 project in VB 6.0 IDE and make sure that it opens fine. Build the project and make sure that the application executes without any errors.</li>
<li>Run the Upgrade assessment tool on the <strong>visual</strong> basic 6 project:<br />
(Old one) <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=10C491A2-FC67-4509-BC10-60C5C039A272&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyId=10C491A2-FC67-4509-BC10-60C5C039A272&amp;displaylang=en</a><br />
(New one) <a href="http://www.artinsoft.com/visual-basic-upgrade-assessment-tool.aspx">http://www.artinsoft.com/visual-basic-upgrade-assessment-tool.aspx</a></li>
<li>Keep a local copy of the VB 6.0 project</li>
<li>There is <em>no direct wizard conversion in <strong>Visual</strong> <strong>Studio</strong> <strong>2010</strong></em>. You have to first use the conversion wizard available in <strong>Visual</strong> <strong>Studio</strong> 2005/2008 to <strong>convert</strong> to VB.net and then <strong>convert</strong> the same to <strong>Visual</strong> <strong>Studio</strong> <strong>2010</strong>. As you don’t have <strong>Visual</strong> <strong>Studio</strong> 2008, you can download free version from following link.<br />
<a href="http://www.microsoft.com/visualstudio/en-us/products/2008-editions/express">http://www.microsoft.com/visualstudio/en-us/products/2008-editions/express</a></li>
<li>Once you are done with the conversion you can uninstall Visual Studio 2008 express edition.</li>
<li>Also you can download a free guide which contains information about Upgrading <strong>Visual</strong> Basic 6.0 Applications to <strong>Visual</strong> Basic .NET and <strong>Visual</strong> Basic 2005 (Its bit old but it will give useful insights as and when you are migrating source code to .net).<br />
<a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=7C3FE0A9-CBED-485F-BFD5-847FB68F785D&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyId=7C3FE0A9-CBED-485F-BFD5-847FB68F785D&amp;displaylang=en</a></li>
</ol>
<p> A general note:</p>
<p> <em>As per the upgrade guide, the effect of the changes and subtle differences in <strong>Visual</strong> Basic .NET is that, unlike previous versions of <strong>Visual</strong> Basic, most real-world projects cannot be upgraded 100 percent automatically. To understand why, consider that for a 100 percent upgrade there has to be a one-to-one correlation between every element of <strong>Visual</strong> Basic 6 and a corresponding element in <strong>Visual</strong> Basic .NET. Unfortunately, this correlation does not exist. The upgrade process is closer to 95 percent, meaning that the <strong>Visual</strong> Basic .NET Upgrade Wizard upgrades 95 percent of your application, and you modify 5 percent of the application to get it working. What does 5 percent mean? If it took you 100 days to write the original <strong>Visual</strong> Basic 6 application, you might expect to take 5 days to upgrade it. This number is not set in stone-some applications are easier to upgrade than others, and the experience of the person doing the upgrade is an important factor. To prepare yourself, make sure you familiarize yourself with Part IV of the upgrade guide. It discusses how to design your <strong>Visual</strong> Basic 6 applications to make the upgrade process much smoother.</em></p>
<p>Microsoft <strong>Visual</strong> Basic 6.0 Migration Resource Center<br />
<a href="http://msdn.microsoft.com/hi-in/vbrun/ms788233(en-us).aspx">http://msdn.microsoft.com/hi-in/vbrun/ms788233(en-us).aspx</a></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fntcoder.com%2Fbab%2F2011%2F09%2F20%2Fconvert-a-vb6-project-to-vb-net-visual-studio-2010%2F&amp;title=Convert%20a%20VB6%20project%20to%20VB.net%20Visual%20Studio%202010" id="wpa2a_12"><img src="http://ntcoder.com/bab/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://ntcoder.com/bab/2011/09/20/convert-a-vb6-project-to-vb-net-visual-studio-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C++11 Features in Visual C++ vNext</title>
		<link>http://ntcoder.com/bab/2011/09/14/c11-features-in-visual-c-vnext/</link>
		<comments>http://ntcoder.com/bab/2011/09/14/c11-features-in-visual-c-vnext/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 20:46:44 +0000</pubDate>
		<dc:creator>Nibu Thomas</dc:creator>
				<category><![CDATA[C++, VC++]]></category>
		<category><![CDATA[STL]]></category>
		<category><![CDATA[C++0x]]></category>
		<category><![CDATA[compiler]]></category>
		<category><![CDATA[standard libraries]]></category>
		<category><![CDATA[stl]]></category>

		<guid isPermaLink="false">http://ntcoder.com/bab/?p=2333</guid>
		<description><![CDATA[There&#8217;s a new C++ Standard and a new version of Visual C++, and it&#8217;s time to reveal those features. Read more here&#8230; http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx  &#160;]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a new C++ Standard and a new version of Visual C++, and it&#8217;s time to reveal those features. Read more here&#8230;</p>
<p><a href="http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx">http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx</a> </p>
<p>&nbsp;</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fntcoder.com%2Fbab%2F2011%2F09%2F14%2Fc11-features-in-visual-c-vnext%2F&amp;title=C%2B%2B11%20Features%20in%20Visual%20C%2B%2B%20vNext" id="wpa2a_14"><img src="http://ntcoder.com/bab/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://ntcoder.com/bab/2011/09/14/c11-features-in-visual-c-vnext/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A preview of Windows 8</title>
		<link>http://ntcoder.com/bab/2011/09/13/a-preview-of-windows-8/</link>
		<comments>http://ntcoder.com/bab/2011/09/13/a-preview-of-windows-8/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 17:38:28 +0000</pubDate>
		<dc:creator>Nibu Thomas</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows 8]]></category>

		<guid isPermaLink="false">http://ntcoder.com/bab/?p=2331</guid>
		<description><![CDATA[Enjoy maadi: http://www.buildwindows.com/]]></description>
			<content:encoded><![CDATA[<p>Enjoy maadi: <img src='http://ntcoder.com/bab/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.buildwindows.com/">http://www.buildwindows.com/</a></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fntcoder.com%2Fbab%2F2011%2F09%2F13%2Fa-preview-of-windows-8%2F&amp;title=A%20preview%20of%20Windows%208" id="wpa2a_16"><img src="http://ntcoder.com/bab/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://ntcoder.com/bab/2011/09/13/a-preview-of-windows-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automatically launching CDB to take a dump of a native/managed crash</title>
		<link>http://ntcoder.com/bab/2011/09/13/automatically-launching-cdb-to-take-a-dump-of-a-nativemanaged-crash/</link>
		<comments>http://ntcoder.com/bab/2011/09/13/automatically-launching-cdb-to-take-a-dump-of-a-nativemanaged-crash/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 13:23:37 +0000</pubDate>
		<dc:creator>Nibu Thomas</dc:creator>
				<category><![CDATA[Debugging]]></category>
		<category><![CDATA[CDB]]></category>
		<category><![CDATA[CLR]]></category>
		<category><![CDATA[Crash dump]]></category>

		<guid isPermaLink="false">http://ntcoder.com/bab/?p=2328</guid>
		<description><![CDATA[Found a nice article which describes how to take native/managed crash dumps automatically using CDB as soon as a crash takes place. We know that for CLR 2.0 we&#8217;ve got to configure crash handler settings at two places in the registry for a native and managed application. For native HKLM\Software\Microsoft\Windows NT\Current Version\AeDebug\Debugger HKLM\Software\Microsoft\Windows NT\Current Version\AeDebug\Auto For managed HKLM\Software\Microsoft\.NETFramework\DbgManagedDebugger <a href='http://ntcoder.com/bab/2011/09/13/automatically-launching-cdb-to-take-a-dump-of-a-nativemanaged-crash/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Found a nice article which describes how to take native/managed crash dumps automatically using CDB as soon as a crash takes place. We know that for CLR 2.0 we&#8217;ve got to configure crash handler settings at two places in the registry for a native and managed application.</p>
<p>For native</p>
<ol>
<li>HKLM\Software\Microsoft\Windows NT\Current Version\AeDebug\Debugger</li>
<li>HKLM\Software\Microsoft\Windows NT\Current Version\AeDebug\Auto</li>
</ol>
<p>For managed</p>
<ol>
<li>HKLM\Software\Microsoft\.NETFramework\DbgManagedDebugger</li>
<li>HKLM\Software\Microsoft\.NETFramework\DbgJITDebugLaunchSetting</li>
</ol>
<p>This article from MSDN explains in detail on how to configure registry entries to take automatic crash dumps using CDB&#8230;</p>
<p><a href="http://blogs.msdn.com/b/clrteam/archive/2009/10/15/automatically-capturing-a-dump-when-a-process-crashes.aspx">http://blogs.msdn.com/b/clrteam/archive/2009/10/15/automatically-capturing-a-dump-when-a-process-crashes.aspx</a></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fntcoder.com%2Fbab%2F2011%2F09%2F13%2Fautomatically-launching-cdb-to-take-a-dump-of-a-nativemanaged-crash%2F&amp;title=Automatically%20launching%20CDB%20to%20take%20a%20dump%20of%20a%20native%2Fmanaged%20crash" id="wpa2a_18"><img src="http://ntcoder.com/bab/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://ntcoder.com/bab/2011/09/13/automatically-launching-cdb-to-take-a-dump-of-a-nativemanaged-crash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to enable or disable Just in Time Debugging (JIT)</title>
		<link>http://ntcoder.com/bab/2011/09/06/how-to-enable-or-disable-just-in-time-debugging-jit/</link>
		<comments>http://ntcoder.com/bab/2011/09/06/how-to-enable-or-disable-just-in-time-debugging-jit/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 18:22:54 +0000</pubDate>
		<dc:creator>Nibu Thomas</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[VB]]></category>
		<category><![CDATA[JIT]]></category>
		<category><![CDATA[Just in Time Debugging]]></category>

		<guid isPermaLink="false">http://ntcoder.com/bab/?p=2321</guid>
		<description><![CDATA[Read the following article in MSDN: http://msdn.microsoft.com/en-us/library/5hs4b7a6.aspx The easiest way to disable JIT debugger is via the Tools-&#62;Options dialog in Visual Studio. For other options read the article.]]></description>
			<content:encoded><![CDATA[<p>Read the following article in MSDN:</p>
<p><a title="http://msdn.microsoft.com/en-us/library/5hs4b7a6.aspx" href="http://msdn.microsoft.com/en-us/library/5hs4b7a6.aspx">http://msdn.microsoft.com/en-us/library/5hs4b7a6.aspx</a></p>
<p>The easiest way to disable JIT debugger is via the Tools-&gt;Options dialog in Visual Studio. For other options read<a title="Enable/Disable JIT debugger" href="http://msdn.microsoft.com/en-us/library/5hs4b7a6.aspx" target="_blank"> the article</a>.</p>
<div id="attachment_2323" class="wp-caption alignnone" style="width: 310px"><a href="http://ntcoder.com/bab/2011/09/06/how-to-enable-or-disable-just-in-time-debugging-jit/options/" rel="attachment wp-att-2323"><img class="size-medium wp-image-2323" title="Enable/Disable Just in Time Debugger in Visual Studio Options dialog" src="http://ntcoder.com/bab/wp-content/uploads/2011/09/Options-300x174.png" alt="Enable/Disable Just in Time Debugger in Visual Studio Options dialog" width="300" height="174" /></a><p class="wp-caption-text">Enable/Disable Just in Time Debugger in Visual Studio Options dialog</p></div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fntcoder.com%2Fbab%2F2011%2F09%2F06%2Fhow-to-enable-or-disable-just-in-time-debugging-jit%2F&amp;title=How%20to%20enable%20or%20disable%20Just%20in%20Time%20Debugging%20%28JIT%29" id="wpa2a_20"><img src="http://ntcoder.com/bab/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://ntcoder.com/bab/2011/09/06/how-to-enable-or-disable-just-in-time-debugging-jit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

