<?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>Open Software Solutions &#187; Fixes</title>
	<atom:link href="http://ossmall.info/category/ms-visual-studio/fixes/feed/" rel="self" type="application/rss+xml" />
	<link>http://ossmall.info</link>
	<description>Open Software Solutions</description>
	<lastBuildDate>Fri, 10 Sep 2010 15:47:06 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Problems when trying to setup remote debug across network domains</title>
		<link>http://ossmall.info/problems-when-trying-to-setup-remote-debug-across-network-domains/</link>
		<comments>http://ossmall.info/problems-when-trying-to-setup-remote-debug-across-network-domains/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 12:40:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Fixes]]></category>

		<guid isPermaLink="false">http://ossmall.info/problems-when-trying-to-setup-remote-debug-across-network-domains/</guid>
		<description><![CDATA[Action
When remote debugging a windows application (windows form/service) across 2 networks, 2 machines on 2 different domains, you may get an error message similar to this one if there is a Network Address Translation (NAT) or a hardware firewall/router between the 2 machines.
&#8220;Error while trying to run project: Unable to start debugging. The Visual Studio [...]]]></description>
			<content:encoded><![CDATA[<h2>Action</h2>
<p>When remote debugging a windows application (windows form/service) across 2 networks, 2 machines on 2 different domains, you may get an error message similar to this one if there is a Network Address Translation (NAT) or a hardware firewall/router between the 2 machines.</p>
<p>&#8220;Error while trying to run project: Unable to start debugging. The Visual Studio Remote Debugger on the target computer cannot connect back to this computer. A firewall may be preventing communication via DCOM to the local computer&#8221;</p>
<h2>Result</h2>
<p>Even after setting all the firewall settings on the machines correctly and on the local machine when going to Debug-&gt;Attach to Process, and browsing on the remote machine the process to be debugged appears but still unable to attach to the process and continue to get the same error message.</p>
<h2>Cause</h2>
<p>This is by design.  The router/NAT is causing the problem with communication between the 2 machines in order to debug the application.</p>
<h2>Resolution</h2>
<p>There isn&#8217;t a way to by-pass the NAT, so one of the following needs to happen:</p>
<p>1.       Move both machines to one side of the NAT, server side or client side.</p>
<p>2.       Move the firewall up a level making both remote and local machines under the same firewall/NAT</p>
<h2>More Information</h2>
<p>One way to make sure both machines are communicating correctly is to use net view command from both server and client to see if each can see the other.</p>
<p>Net view<br />
<a href="http://technet.microsoft.com/en-us/library/bb490719.aspx">http://technet.microsoft.com/en-us/library/bb490719.aspx</a> (http://technet.microsoft.com/en-us/library/bb490719.aspx)</p>
<h2>DISCLAIMER</h2>
<p>MICROSOFT AND/OR ITS SUPPLIERS MAKE NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY, RELIABILITY OR ACCURACY OF THE INFORMATION CONTAINED IN THE DOCUMENTS AND RELATED GRAPHICS PUBLISHED ON THIS WEBSITE (THE &#8220;MATERIALS&#8221;) FOR ANY PURPOSE. THE MATERIALS MAY INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS AND MAY BE REVISED AT ANY TIME WITHOUT NOTICE.</p>
<p>TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, MICROSOFT AND/OR ITS SUPPLIERS DISCLAIM AND EXCLUDE ALL REPRESENTATIONS, WARRANTIES, AND CONDITIONS WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO REPRESENTATIONS, WARRANTIES, OR CONDITIONS OF TITLE, NON INFRINGEMENT, SATISFACTORY CONDITION OR QUALITY, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT TO THE MATERIALS.</p>
<hr align="center" size="2" width="100%" />
<h5>APPLIES TO</h5>
<table border="0" cellpadding="0">
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual Studio .NET 2002 Professional Edition</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual Studio .NET 2003 Professional Edition</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual Studio 2005 Professional Edition</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual Studio 2008 Professional Edition</td>
</tr>
</table>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<h5>Microsoft Knowledge Base Article</h5>
<p>This article contents is Microsoft Copyrighted material.<br />
Microsoft Corporation. All rights reserved. <a href="http://support.microsoft.com/tou/">Terms of Use</a> | <a href="http://support.microsoft.com/library/toolbar/3.0/trademarks/en-us.mspx">Trademarks</a></p>
<div class="aizatto_related_posts"><span class="aizatto_related_posts_header" >Related Articles or Pages</span><ul></ul></div>]]></content:encoded>
			<wfw:commentRss>http://ossmall.info/problems-when-trying-to-setup-remote-debug-across-network-domains/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Possible Reasons for OLE Control Registration Failure</title>
		<link>http://ossmall.info/possible-reasons-for-ole-control-registration-failure/</link>
		<comments>http://ossmall.info/possible-reasons-for-ole-control-registration-failure/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 15:51:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Fixes]]></category>

		<guid isPermaLink="false">http://ossmall.info/possible-reasons-for-ole-control-registration-failure/</guid>
		<description><![CDATA[SUMMARY
 loadTOCNode(1, \\'summary\\'); OLE controls can be registered by using Visual C++ from the Tools menu, from the Test Container provided with the Control Development Kit (CDK), or by using the regsvr or regsvr32 applications provided with Visual C++. In some cases, the registration of a control may fail; use this article to help troubleshoot [...]]]></description>
			<content:encoded><![CDATA[<h2>SUMMARY</h2>
<p><script type="text/javascript"> loadTOCNode(1, \\'summary\\'); </script>OLE controls can be registered by using Visual C++ from the Tools menu, from the Test Container provided with the Control Development Kit (CDK), or by using the regsvr or regsvr32 applications provided with Visual C++. In some cases, the registration of a control may fail; use this article to help troubleshoot the problem.</p>
<h2>MORE INFORMATION</h2>
<p><script type="text/javascript"> loadTOCNode(1, \\'moreinformation\\'); </script>All of the previously mentioned methods for registering an OLE Control use essentially the same technique. LoadLibrary() is called to load the control into memory, GetProcAddress() is called to get the address of the DllRegisterServer() function, and then DllRegisterServer() is called to register the control.</p>
<h3>Reasons Why the Registration of a Control May Fail</h3>
<table border="0" cellpadding="0">
<tr>
<td><script type="text/javascript"> loadTOCNode(2, \\'moreinformation\\');   </script>•</td>
<td>One or more of the necessary OLE DLLs is not in the path.   Instructions for distributing OLE Controls as well as an explanation of what   DLLs are necessary to ship can be found in the Shipctrl.wri file located in   the same directory as the CDK.</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>The control is loading a DLL other than the OLE DLL, and   that DLL is not in the path. When the control is loaded into memory, any DLLs   that are implicitly loaded through an import library are also loaded. If any   of these DLLs are not in the path, the control is not loaded successfully, so   registration fails.</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>One or more DLLs may be the wrong version. If the control   was built with a newer version of a DLL than the one installed on the   computer, the control may not load properly, so registration fails.</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>An old version of Ocd25.lib is being linked to. If the   control is using the MFC database classes, there may be a problem with the   version of the Ocd25.lib file that is being linked to.</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>The OLE control is located on a Novell server&#8217;s remote   drive. In this case, the access rights to the .ocx file may be preventing the   control from loading. Make sure that the access rights for the .ocx file are   set to read-only, shareable access, which is the typical setting for   executable files.</td>
</tr>
</table>
<h3>Troubleshooting Techniques</h3>
<p><script type="text/javascript"> loadTOCNode(2, \\'moreinformation\\'); </script>If none of the possible causes are true in your case, try the following techniques.</p>
<table border="0" cellpadding="0">
<tr>
<td>1.</td>
<td>With the control project loaded in Visual C++, set the   executable for the debug session to the OLE Control Test Container   (Tstcon16.exe or Tstcon32.exe). When you start the Test Container (under the   debugger), you will get a warning that the Test Container does not contain   debug information. Ignore this and proceed.</td>
</tr>
<tr>
<td>2.</td>
<td>From the Test Container, attempt to register the control.   Watch for debug output from the OLE Control DLL or any of its dependent DLLs.   If you are running the 16-bit product, remember to run the DBWIN program to   receive debug output.For information on how to set the executable for a DLL debug session, please   see the help topic &#8220;Debugging DLLs&#8221; in Books Online.</td>
</tr>
</table>
<p>As an alternative, you can attempt to register the control programmatically. First create an MFC AppWizard application selecting Dialog-based application and OLE Automation. Enabling OLE Automation will initialize OLE so that the code to register the control will work properly. In the CWinApp-derived class, you will find the function InitInstance() with the initial code as follows:</p>
<pre>BOOL CTestregApp::InitInstance()</pre>
<pre>{</pre>
<pre></pre>
<pre>   // Initialize OLE libraries</pre>
<pre>   if (!AfxOleInit())</pre>
<pre>   {</pre>
<pre>      AfxMessageBox(IDP_OLE_INIT_FAILED);</pre>
<pre>      return FALSE;</pre>
<pre>   }</pre>
<pre></pre>
<p>At this point, add the following code segment, which will allow you to check the return codes from LoadLibrary(), GetProcAddress(), and DllRegisterServer.</p>
<pre>#ifdef _WIN32</pre>
<pre>    HINSTANCE hDLL = LoadLibrary("some.ocx");</pre>
<pre>    if(NULL == hDLL)</pre>
<pre>    {</pre>
<pre>        // See Winerror.h for explaination of error code.</pre>
<pre>        DWORD error = GetLastError();</pre>
<pre>        TRACE1("LoadLibrary() Failed with: %i\n", error);</pre>
<pre>        return FALSE;</pre>
<pre>    }</pre>
<pre></pre>
<pre>    typedef HRESULT (CALLBACK *HCRET)(void);</pre>
<pre>    HCRET lpfnDllRegisterServer;</pre>
<pre></pre>
<pre>    lpfnDllRegisterServer =</pre>
<pre>            (HCRET)GetProcAddress(hDLL, "DllRegisterServer");</pre>
<pre>    if(NULL == lpfnDllRegisterServer)</pre>
<pre>    {</pre>
<pre>        // See Winerror.h for explaination of error code.</pre>
<pre>        DWORD error = GetLastError();</pre>
<pre>        TRACE1("GetProcAddress() Failed with %i\n", error);</pre>
<pre>        return FALSE;</pre>
<pre>    }</pre>
<pre></pre>
<pre>    if(FAILED((*lpfnDllRegisterServer)()))</pre>
<pre>    {</pre>
<pre>        TRACE("DLLRegisterServer() Failed");</pre>
<pre>        return FALSE;</pre>
<pre>    }</pre>
<pre></pre>
<pre>#else // 16-bit</pre>
<pre>    HINSTANCE hDLL = LoadLibrary("regtest.ocx");</pre>
<pre>    if(HINSTANCE_ERROR &gt; hDLL)</pre>
<pre>    {</pre>
<pre>        // See LoadLibrary() help for explaination of error code.</pre>
<pre>        TRACE1("LoadLibrary() Failed with: %i\n", hDLL);</pre>
<pre>        return FALSE;</pre>
<pre>    }</pre>
<pre></pre>
<pre>    typedef HRESULT (CALLBACK *HCRET)(void);</pre>
<pre>    HCRET lpfnDllRegisterServer;</pre>
<pre></pre>
<pre>    lpfnDllRegisterServer =</pre>
<pre>            (HCRET)GetProcAddress(hDLL, "DllRegisterServer");</pre>
<pre>    if(NULL == lpfnDllRegisterServer)</pre>
<pre>    {</pre>
<pre>        // See GetProcAddress() help for explaination of error code.</pre>
<pre>        TRACE("GetProcAddress() Failed");</pre>
<pre>        return FALSE;</pre>
<pre>    }</pre>
<pre></pre>
<pre>    if(FAILED((*lpfnDllRegisterServer)()))</pre>
<pre>    {</pre>
<pre>        TRACE("DLLRegisterServer() Failed");</pre>
<pre>        return FALSE;</pre>
<pre>    }</pre>
<pre>#endif</pre>
<pre></pre>
<hr align="center" size="2" width="100%" />
<h5>APPLIES TO</h5>
<table border="0" cellpadding="0">
<tr>
<td>&nbsp;</td>
<td>Microsoft Visual C++ 1.5 Professional Edition</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Microsoft Visual C++ 1.51</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Microsoft Visual C++ 1.52 Professional Edition</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Microsoft Visual C++ 2.0 Professional Edition</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Microsoft Visual C++ 2.1</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Microsoft Visual C++ 2.2</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Microsoft Visual C++ 4.0 Standard Edition</td>
</tr>
</table>
<h4>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</h4>
<h4>Microsoft Knowledge Base Article</h4>
<p class="MsoNormal">This article contents is Microsoft Copyrighted material.<br />
Microsoft Corporation. All rights reserved. <a href="http://support.microsoft.com/tou/">Terms of Use</a> | <a href="http://support.microsoft.com/library/toolbar/3.0/trademarks/en-us.mspx">Trademarks</a><br />
<!--[if !supportLineBreakNewLine]--><br />
<!--[endif]--></p>
<div class="aizatto_related_posts"><span class="aizatto_related_posts_header" >Related Articles or Pages</span><ul></ul></div>]]></content:encoded>
			<wfw:commentRss>http://ossmall.info/possible-reasons-for-ole-control-registration-failure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FIX: You may experience performance issues in the IDE after you use Visual Studio 2008 to build a Visual Basic project</title>
		<link>http://ossmall.info/fix-you-may-experience-performance-issues-in-the-ide-after-you-use-visual-studio-2008-to-build-a-visual-basic-project/</link>
		<comments>http://ossmall.info/fix-you-may-experience-performance-issues-in-the-ide-after-you-use-visual-studio-2008-to-build-a-visual-basic-project/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 16:13:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Fixes]]></category>

		<guid isPermaLink="false">http://ossmall.info/fix-you-may-experience-performance-issues-in-the-ide-after-you-use-visual-studio-2008-to-build-a-visual-basic-project/</guid>
		<description><![CDATA[
Consider the following scenario:


•
You use Microsoft Visual Studio 2008 to build a Microsoft Visual Basic project.


•
The Visual Basic project contains many XML comments in a single file.


•
The file is probably a designer-generated file for a dataset or for a Web reference.


In this scenario, you may experience the following performance issues in the IDE:


•
The IDE takes [...]]]></description>
			<content:encoded><![CDATA[<p class="section">
<p class="sbody">Consider the following scenario:</p>
<table class="list ul">
<tr>
<td class="bullet">•</td>
<td class="text">You use Microsoft Visual Studio 2008 to build a Microsoft Visual Basic project.</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">The Visual Basic project contains many XML comments in a single file.</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">The file is probably a designer-generated file for a dataset or for a Web reference.</td>
</tr>
</table>
<p>In this scenario, you may experience the following performance issues in the IDE:</p>
<table class="list ul">
<tr>
<td class="bullet">•</td>
<td class="text">The IDE takes a long time to build the solution and to rebuild the solution.</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">You experience a slow response time when you press F5 to start debugging.</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">You experience a slow response time in the Code Editor.</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">You experience a slow response time in IntelliSense.</td>
</tr>
</table>
<p class="topOfPage">&nbsp;</p>
<h2 class="subTitle" id="tocHeadRef">CAUSE</h2>
<p class="sbody">This problem occurs because of how the Visual Studio 2008 compiler processes  large files that contain XML documentation.</p>
<p class="topOfPage">&nbsp;</p>
<h2 class="subTitle" id="tocHeadRef">RESOLUTION</h2>
<p class="sbody">
<h3 id="tocHeadRef">Download information</h3>
<p>The following file is available for download from the Microsoft Download Center:<br />
<img src="http://support.microsoft.com/library/images/support/kbgraphics/public/EN-US/Download.gif" class="graphic" alt="Download" title="Download" /><a href="https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=11026&amp;amp;amp;amp;wa=wsignin1.0%29">Download the 338762_ENU_i386_zip.exe package now.</a><span class="pLink"> (https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=11026&amp;amp;amp;amp;wa=wsignin1.0))</span></p>
<p class="topOfPage">&nbsp;</p>
<h3 id="tocHeadRef">Hotfix information</h3>
<p>A supported hotfix is now available from Microsoft. However, it is intended to correct only the problem that is described in this article. Apply it only to systems that are experiencing this specific problem. This hotfix may receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next Visual Studio 2008 service pack that contains this hotfix.</p>
<p>To resolve this problem immediately, contact Microsoft Customer Support Services to obtain the hotfix. For a complete list of Microsoft Customer Support Services telephone numbers and information about support costs, visit the following Microsoft Web site:</p>
<p class="indent"><a href="http://support.microsoft.com/contactus/?ws=support">http://support.microsoft.com/contactus/?ws=support</a><span class="pLink"> (http://support.microsoft.com/contactus/?ws=support)</span></p>
<p><strong>Note</strong> In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The usual support costs will apply to additional support questions and issues that do not qualify for the specific update in question.</p>
<p>The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the <strong class="uiterm">Time Zone</strong> tab in the <strong class="uiterm">Date and Time</strong> item in Control Panel.</p>
<table class="table" cellspacing="1">
<tr>
<th>File name</th>
<th>File version</th>
<th>File size</th>
<th>Date</th>
<th>Time</th>
</tr>
<tr>
<td>Avvspkdh.dll</td>
<td>9.0.21022.43</td>
<td>34,816</td>
<td>29-Jan-2008</td>
<td>03:17</td>
</tr>
<tr>
<td>Mcee.dll</td>
<td>9.0.21022.43</td>
<td>367,608</td>
<td>29-Jan-2008</td>
<td>03:17</td>
</tr>
<tr>
<td>Mpishim.exe</td>
<td>9.0.21022.43</td>
<td>26,112</td>
<td>29-Jan-2008</td>
<td>03:17</td>
</tr>
<tr>
<td>Msvb7.dll</td>
<td>9.0.21022.43</td>
<td>4,069,880</td>
<td>29-Jan-2008</td>
<td>03:17</td>
</tr>
<tr>
<td>Msvsmon.exe</td>
<td>9.0.21022.43</td>
<td>3,004,416</td>
<td>29-Jan-2008</td>
<td>03:17</td>
</tr>
</table>
<p class="topOfPage">&nbsp;</p>
<h2 class="subTitle" id="tocHeadRef">WORKAROUND</h2>
<p class="sbody">To work around this problem, use one of the following methods.</p>
<p class="topOfPage">&nbsp;</p>
<h3 id="tocHeadRef">Method 1: Disable XML comment generation</h3>
<p>To disable XML comment generation for the project, use one of the following procedures.</p>
<h4 id="tocHeadRef">Visual Studio 2008</h4>
<table class="list ol">
<tr>
<td class="number">1.</td>
<td class="text">In Solution Explorer, right-click <strong class="uiterm"><var>ProjectName</var></strong>, and then click <strong class="uiterm">Properties</strong>.</td>
</tr>
<tr>
<td class="number">2.</td>
<td class="text">On the <strong class="uiterm">Compile</strong> tab, click to clear the <strong class="uiterm">Generate XML documentation file</strong> check box.</td>
</tr>
<tr>
<td class="number">3.</td>
<td class="text">On the <strong class="uiterm">File</strong> menu, click <strong class="uiterm">Save All</strong>.</td>
</tr>
</table>
<h4 id="tocHeadRef">Visual Basic 2008 Express Edition</h4>
<table class="list ol">
<tr>
<td class="number">1.</td>
<td class="text">Create a backup of the project.</td>
</tr>
<tr>
<td class="number">2.</td>
<td class="text">In Notepad, open the .vbproj file for the project.</td>
</tr>
<tr>
<td class="number">3.</td>
<td class="text">Locate and then delete all the <strong class="uiterm">&lt;DocumentationFile&gt;</strong> elements in the .vbproj file.</p>
<p><strong>Note</strong> Typically, you will delete two elements in the .vbproj file.</td>
</tr>
</table>
<p class="topOfPage">&nbsp;</p>
<h3 id="tocHeadRef">Method 2: Remove the XML comments</h3>
<p>To remove the XML comments, follow these steps for the designer-generated file:</p>
<table class="list ol">
<tr>
<td class="number">1.</td>
<td class="text">On the <strong class="uiterm">Edit</strong> menu, point to <strong class="uiterm">Find and Replace</strong>, and then click <strong class="uiterm">Quick Replace</strong>.</td>
</tr>
<tr>
<td class="number">2.</td>
<td class="text">In the <strong class="uiterm">Find what</strong> box, type <span class="userInput">&#8221;&#8217;</span>.</td>
</tr>
<tr>
<td class="number">3.</td>
<td class="text">In the <strong class="uiterm">Replace with</strong> box, type <span class="userInput">&#8221;</span>, and then click <strong class="uiterm">Replace All</strong>.</td>
</tr>
</table>
<p><strong>Note</strong> You must repeat these steps if you perform one of the following actions:</p>
<table class="list ul">
<tr>
<td class="bullet">•</td>
<td class="text">You save the designer file that generated this code file.</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">You refresh the Web reference.</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">You right-click the file, and then you click <strong class="uiterm">Run Custom Tool</strong>.</td>
</tr>
</table>
<p class="topOfPage">&nbsp;</p>
<h3 id="tocHeadRef">Method 3: Create a separate project to store the file that has the XML comments</h3>
<p>Create a new class library project to store the designer-generated files. The following procedure is an example of to do this:</p>
<table class="list ol">
<tr>
<td class="number">1.</td>
<td class="text">Create a new class library project to store files that contain a dataset or that contain a Web reference.</td>
</tr>
<tr>
<td class="number">2.</td>
<td class="text">In the original Visual Basic project,  add a reference to the new class library project.</td>
</tr>
<tr>
<td class="number">3.</td>
<td class="text">Use Method 1 to disable the XML documentation file.</td>
</tr>
</table>
<p><strong>Note</strong> You may have to add import statements to the Visual Basic code.</p>
<p class="topOfPage">&nbsp;</p>
<h2 class="subTitle" id="tocHeadRef">STATUS</h2>
<p class="sbody">Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the &#8220;Applies to&#8221; section.</p>
<p class="topOfPage">&nbsp;</p>
<h2 class="subTitle" id="tocHeadRef">MORE INFORMATION</h2>
<p class="sbody">
<p class="indent"><span class="pLink">Feedback.aspx?kbNumber=824684/)</span>   Description of the standard terminology that is used to describe Microsoft software updates</p>
<p>For more information about how to generate XML documentation for a project, visit the following Microsoft Developer Network (MSDN) Web site:</p>
<p class="indent"><a href="http://msdn2.microsoft.com/en-us/library/x4sa0ak0%28VS.90%29.aspx">http://msdn2.microsoft.com/en-us/library/x4sa0ak0(VS.90).aspx</a><span class="pLink"> (http://msdn2.microsoft.com/en-us/library/x4sa0ak0(VS.90).aspx)</span></p>
<p class="topOfPage"><a href="http://kbalertz.com/946344/experience-performance-issues-after-Visual-Studio-build-Visual-Basic-project.aspx#top"><br />
</a></p>
<hr />
<h5>APPLIES TO</h5>
<table class="list">
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2008 Professional Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2008 Academic Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2008 Standard Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Basic 2008 Express Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio Team System 2008 Team Suite</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio Team System 2008 Database Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio Team System 2008 Architecture Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio Team System 2008 Development Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio Team System 2008 Test Edition</td>
</tr>
</table>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<h5>Microsoft Knowledge Base Article</h5>
<p class="MsoNormal">This article contents is Microsoft Copyrighted material.<br />
Microsoft Corporation. All rights reserved. <a href="http://support.microsoft.com/tou/">Terms of Use</a> | <a href="http://support.microsoft.com/library/toolbar/3.0/trademarks/en-us.mspx">Trademarks</a></p>
<div class="aizatto_related_posts"><span class="aizatto_related_posts_header" >Related Articles or Pages</span><ul></ul></div>]]></content:encoded>
			<wfw:commentRss>http://ossmall.info/fix-you-may-experience-performance-issues-in-the-ide-after-you-use-visual-studio-2008-to-build-a-visual-basic-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Access violation when class method is called via pointer-to-member-function for forward-declared class</title>
		<link>http://ossmall.info/access-violation-when-class-method-is-called-via-pointer-to-member-function-for-forward-declared-class/</link>
		<comments>http://ossmall.info/access-violation-when-class-method-is-called-via-pointer-to-member-function-for-forward-declared-class/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 12:59:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Fixes]]></category>

		<guid isPermaLink="false">http://ossmall.info/access-violation-when-class-method-is-called-via-pointer-to-member-function-for-forward-declared-class/</guid>
		<description><![CDATA[A method is called through pointer and respective class is only forward declared.
For example:
class TestClass;
void Disp(TestClass&#38; rObj, void (TestClass::*pFun)())
{
(rObj.*pFun)();
}
Here ‘TestClass’ and function ‘Disp’ are in the same project, but defined in different .CPP files.


Result
The VC++ compiler compiles this without any errors, but the application fails with access violation exception (0xc0000005) during runtime at ‘(rObj.*pFun)();’.
&#160;
Cause

The representation of a pointer-to-member [...]]]></description>
			<content:encoded><![CDATA[<p class="sbody">A method is called through pointer and respective class is only forward declared.<br />
For example:</p>
<p>class TestClass;</p>
<p>void Disp(TestClass&amp; rObj, void (TestClass::*pFun)())<br />
{<br />
(rObj.*pFun)();<br />
}</p>
<p>Here ‘TestClass’ and function ‘Disp’ are in the same project, but defined in different .CPP files.</p>
<p class="topOfPage"><a href="http://kbalertz.com/948989/Access-violation-class-method-called-class.aspx#top"><br />
</a></p>
<h2 class="subTitle" id="tocHeadRef">Result</h2>
<p class="sbody">The VC++ compiler compiles this without any errors, but the application fails with access violation exception (0xc0000005) during runtime at ‘(rObj.*pFun)();’.</p>
<p class="topOfPage">&nbsp;</p>
<h2 class="subTitle" id="tocHeadRef">Cause</h2>
<p class="sbody">
<p>The representation of a pointer-to-member depends on the declaration of the class.  It can vary from a simple offset or pointer in the simple case to a complicated structure in the case where virtual functions or multiple inheritance is involved.  When you just forward declare like this, the compiler doesn’t know about it and generates code assuming the “simple” representation.  At runtime, the value of pFun (which was built by code that <strong>does </strong>know it needs to be complicated) isn’t using the same layout and you get a crash.</p>
<p class="topOfPage"><a href="http://kbalertz.com/948989/Access-violation-class-method-called-class.aspx#top"><br />
</a></p>
<h2 class="subTitle" id="tocHeadRef">Resolution</h2>
<p class="sbody">If possible, #include the header file that contains the whole declaration of the class TestClass (making forward declaration ‘class TestClass;’ unnecessary).<br />
If including the header is not possible (such as cases where a header is not available or when a circular reference would result), you can give the compiler information about the complexity of the class inheritance, so that it can generate the appropriately more &#8221;pessimistic&#8221; code, using one of the following options:</p>
<table class="list ul">
<tr>
<td class="bullet">•</td>
<td class="text"><a href="http://msdn2.microsoft.com/en-us/library/ck561bfk.aspx">Inheritance Keywords</a><span class="pLink"> (http://msdn2.microsoft.com/en-us/library/ck561bfk.aspx)</span></td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text"><a href="http://msdn2.microsoft.com/en-us/library/83cch5a6.aspx">#pragma pointers_to_members</a><span class="pLink"> (http://msdn2.microsoft.com/en-us/library/83cch5a6.aspx)</span></td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text"><a href="http://msdn2.microsoft.com/en-us/library/yad46a6z.aspx">Representation Method compiler options (/vmb or /vmg)</a><span class="pLink"> (http://msdn2.microsoft.com/en-us/library/yad46a6z.aspx)</span></td>
</tr>
</table>
<p class="topOfPage"><a href="http://kbalertz.com/948989/Access-violation-class-method-called-class.aspx#top"><br />
</a></p>
<h2 class="subTitle" id="tocHeadRef">More Information</h2>
<p class="sbody"><a href="http://msdn2.microsoft.com/en-us/library/f2wbycwh.aspx">Pointers to Members</a><span class="pLink"> (http://msdn2.microsoft.com/en-us/library/f2wbycwh.aspx)</span><br />
<a href="http://msdn2.microsoft.com/en-us/library/fa0207h3.aspx">Pointers to Members and Virtual Functions</a><span class="pLink"> (http://msdn2.microsoft.com/en-us/library/fa0207h3.aspx)</span></p>
<p class="topOfPage"><a href="http://kbalertz.com/948989/Access-violation-class-method-called-class.aspx#top"><br />
</a></p>
<h2 class="subTitle" id="tocHeadRef">DISCLAIMER</h2>
<p class="sbody">MICROSOFT AND/OR ITS SUPPLIERS MAKE NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY, RELIABILITY OR ACCURACY OF THE INFORMATION CONTAINED IN THE DOCUMENTS AND RELATED GRAPHICS PUBLISHED ON THIS WEBSITE (THE “MATERIALS”) FOR ANY PURPOSE. THE MATERIALS MAY INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS AND MAY BE REVISED AT ANY TIME WITHOUT NOTICE.</p>
<p>TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, MICROSOFT AND/OR ITS SUPPLIERS DISCLAIM AND EXCLUDE ALL REPRESENTATIONS, WARRANTIES, AND CONDITIONS WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO REPRESENTATIONS, WARRANTIES, OR CONDITIONS OF TITLE, NON INFRINGEMENT, SATISFACTORY CONDITION OR QUALITY, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT TO THE MATERIALS.</p>
<p class="topOfPage"><a href="http://kbalertz.com/948989/Access-violation-class-method-called-class.aspx#top"><br />
</a></p>
<hr />
<h5>APPLIES TO</h5>
<table class="list">
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2005 Express Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2005 Professional Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2005 Service Pack 1</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2005 Standard Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2005 Team Suite</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2008 Academic Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2008 Professional Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2008 Standard Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio Team System 2008 Team Suite</td>
</tr>
</table>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<h5>Microsoft Knowledge Base Article</h5>
<p class="MsoNormal">This article contents is Microsoft Copyrighted material.<br />
Microsoft Corporation. All rights reserved. <a href="http://support.microsoft.com/tou/">Terms of Use</a> | <a href="http://support.microsoft.com/library/toolbar/3.0/trademarks/en-us.mspx">Trademarks</a></p>
<p><o:p> </o:p></p>
<div class="aizatto_related_posts"><span class="aizatto_related_posts_header" >Related Articles or Pages</span><ul></ul></div>]]></content:encoded>
			<wfw:commentRss>http://ossmall.info/access-violation-when-class-method-is-called-via-pointer-to-member-function-for-forward-declared-class/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An error message occurs when you are performing intensive OLE Automation in a loop in Visual C++: &#8220;The remote procedure call failed&#8221;</title>
		<link>http://ossmall.info/an-error-message-occurs-when-you-are-performing-intensive-ole-automation-in-a-loop-in-visual-c-the-remote-procedure-call-failed/</link>
		<comments>http://ossmall.info/an-error-message-occurs-when-you-are-performing-intensive-ole-automation-in-a-loop-in-visual-c-the-remote-procedure-call-failed/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 13:24:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Fixes]]></category>

		<guid isPermaLink="false">http://ossmall.info/an-error-message-occurs-when-you-are-performing-intensive-ole-automation-in-a-loop-in-visual-c-the-remote-procedure-call-failed/</guid>
		<description><![CDATA[You are performing intensive OLE Automation, most likely in a loop without user intervention, and receive the following error message:
The remote procedure call failed.
CAUSE
 loadTOCNode(1, 'cause'); Every thread that uses COM or OLE must call the CoInitialize function or the OleInitialize function, respectively. When this call is made, the OS creates a hidden top-level window, [...]]]></description>
			<content:encoded><![CDATA[<p>You are performing intensive OLE Automation, most likely in a loop without user intervention, and receive the following error message:</p>
<p>The remote procedure call failed.</p>
<h2>CAUSE</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'cause'); </script>Every thread that uses COM or OLE must call the <strong>CoInitialize</strong> function or the <strong>OleInitialize</strong> function, respectively. When this call is made, the OS creates a hidden top-level window, owned by your thread, for implementation purposes. Because the OS relies on Windows messaging behind-the-scenes, your thread should, and in some cases MUST, pump messages. Failure to do so can result in automation errors, and sometimes in a deadlock situation when another application broadcasts a message to all top-level windows (for example, an application might broadcast a WM_WININICHANGE or WM_SETTINGCHANGE message to notify other applications the default printer has changed).</p>
<h2>RESOLUTION</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'resolution'); </script>If you are using OLE Automation in a loop (for example, writing out 10,000 rows of data to Microsoft Excel), you need a <strong>PeekMessage</strong> loop inside your loop so that messages will get processed.</p>
<h2>STATUS</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'status'); </script>This behavior is by design.</p>
<h2>MORE INFORMATION</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'moreinformation'); </script>Here is an example of a <strong>PeekMessage</strong> loop you can use in your code.</p>
<pre>MSG msg;</pre>
<pre>   while(PeekMessage(&amp;msg, NULL, NULL, NULL, PM_REMOVE)) {</pre>
<pre>      TranslateMessage(&amp;msg);</pre>
<pre>      DispatchMessage(&amp;msg);</pre>
<pre>   }</pre>
<div class="aizatto_related_posts"><span class="aizatto_related_posts_header" >Related Articles or Pages</span><ul></ul></div>]]></content:encoded>
			<wfw:commentRss>http://ossmall.info/an-error-message-occurs-when-you-are-performing-intensive-ole-automation-in-a-loop-in-visual-c-the-remote-procedure-call-failed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You receive a link error when you build an application that contains a base class in Visual C++</title>
		<link>http://ossmall.info/you-receive-a-link-error-when-you-build-an-application-that-contains-a-base-class-in-visual-c/</link>
		<comments>http://ossmall.info/you-receive-a-link-error-when-you-build-an-application-that-contains-a-base-class-in-visual-c/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 12:30:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Fixes]]></category>

		<guid isPermaLink="false">http://ossmall.info/you-receive-a-link-error-when-you-build-an-application-that-contains-a-base-class-in-visual-c/</guid>
		<description><![CDATA[When building an application that contains a base class with a pure virtual operator= function and a class derived from the base class with a defined operator= function, a following link error is generated for the base class&#8217;s operator=:
error LNK2001: unresolved external symbol
This also occurs if the classes reside in a DLL and are declared [...]]]></description>
			<content:encoded><![CDATA[<p>When building an application that contains a base class with a pure virtual operator= function and a class derived from the base class with a defined operator= function, a following link error is generated for the base class&#8217;s operator=:</p>
<p><font color="#ff0000">error LNK2001: unresolved external symbol</font></p>
<p>This also occurs if the classes reside in a DLL and are declared with the __declspec( dllexport ) storage-class attribute.</p>
<p>In Visual C++ .NET you will receive the following error message:</p>
<p><font color="#ff0000">LNK2019: unresolved external symbol</font></p>
<h2>CAUSE</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'cause'); </script>This behavior is by design. The assignment operator is not inherited. Normal inheritance rules do not apply, and declaring it pure virtual does not have the usual affect.</p>
<h2>RESOLUTION</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'resolution'); </script>Since operator= is not inherited, any declaration of operator= in the base class is unused and unnecessary. Do not declare the operator= in the base class.</p>
<h2>MORE INFORMATION</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'moreinformation'); </script>When built, the following code sample will generate the discussed LNK2001 error. Comment the declaration of the operator=() member in the base class to resolve.</p>
<h3>Sample Code</h3>
<pre><script type="text/javascript">
loadTOCNode(2, 'moreinformation');
</script>/* Compile options needed: none</pre>
<pre>*/</pre>
<pre></pre>
<pre>class A</pre>
<pre>{</pre>
<pre>public :</pre>
<pre>   // To workaround LNK2001, comment the following line.</pre>
<pre>   virtual const A&amp; operator=( const A&amp; f ) = 0;</pre>
<pre>};</pre>
<pre></pre>
<pre>class B : public A</pre>
<pre>{</pre>
<pre>public :</pre>
<pre>   const A&amp; operator=( const A&amp; g ) {return g;}</pre>
<pre>};</pre>
<pre></pre>
<pre>B aB1, aB2;</pre>
<pre></pre>
<pre>void main( void )</pre>
<pre>{</pre>
<pre>   aB2 = aB1;</pre>
<pre>}</pre>
<pre></pre>
<div class="aizatto_related_posts"><span class="aizatto_related_posts_header" >Related Articles or Pages</span><ul></ul></div>]]></content:encoded>
			<wfw:commentRss>http://ossmall.info/you-receive-a-link-error-when-you-build-an-application-that-contains-a-base-class-in-visual-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VC++ build, Warning XDC0017 : Unrecognized XDCMake option: /validate</title>
		<link>http://ossmall.info/vc-build-warning-xdc0017-unrecognized-xdcmake-option-validate/</link>
		<comments>http://ossmall.info/vc-build-warning-xdc0017-unrecognized-xdcmake-option-validate/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 10:44:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Fixes]]></category>

		<guid isPermaLink="false">http://ossmall.info/vc-build-warning-xdc0017-unrecognized-xdcmake-option-validate/</guid>
		<description><![CDATA[

1.
Add XML Documentation (http://msdn2.microsoft.com/en-us/library/ms177226.aspx) comments to your Visual C++ source code.


2.
Enable the Process Documentation Comments switch (http://msdn2.microsoft.com/en-us/library/ms173501.aspx) (/doc)


3.
Select &#8220;Yes /validate&#8221; for Validate IntelliSense on the XML Document Generator (http://msdn2.microsoft.com/en-us/library/ms235515.aspx) Tool Property Page.



Result
You get a warning during the build:
Generating XML documentation&#8230;
warning XDC0017 : Unrecognized XDCMake option: /validate
XDCMAKE /old output_filename [options]
(and a list of valid options&#8230;)

Cause
The XDCMake tool [...]]]></description>
			<content:encoded><![CDATA[<table class="list ol">
<tr>
<td class="number">1.</td>
<td class="text">Add <a href="http://msdn2.microsoft.com/en-us/library/ms177226.aspx">XML Documentation</a><span class="pLink"> (http://msdn2.microsoft.com/en-us/library/ms177226.aspx)</span> comments to your Visual C++ source code.</td>
</tr>
<tr>
<td class="number">2.</td>
<td class="text">Enable the <a href="http://msdn2.microsoft.com/en-us/library/ms173501.aspx">Process Documentation Comments switch</a><span class="pLink"> (http://msdn2.microsoft.com/en-us/library/ms173501.aspx)</span> (/doc)</td>
</tr>
<tr>
<td class="number">3.</td>
<td class="text">Select &#8220;Yes /validate&#8221; for <strong>Validate IntelliSense</strong> on the <a href="http://msdn2.microsoft.com/en-us/library/ms235515.aspx">XML Document Generator</a><span class="pLink"> (http://msdn2.microsoft.com/en-us/library/ms235515.aspx)</span> Tool Property Page.</td>
</tr>
</table>
<p class="topOfPage"><a href="http://kbalertz.com/948860/Warning-XDC0017-Unrecognized-XDCMake.aspx#top"></a></p>
<h2 class="subTitle" id="tocHeadRef">Result</h2>
<p class="sbody">You get a warning during the build:<br />
Generating XML documentation&#8230;<br />
warning XDC0017 : Unrecognized XDCMake option: /validate<br />
XDCMAKE /old output_filename [options]<br />
(and a list of valid options&#8230;)</p>
<p class="topOfPage"><a href="http://kbalertz.com/948860/Warning-XDC0017-Unrecognized-XDCMake.aspx#top"></a></p>
<h2 class="subTitle" id="tocHeadRef">Cause</h2>
<p class="sbody">The XDCMake tool had, at one time, a /validate option in its old command line interface.  It was decided, due to weaknesses in its implementation, that its usefulness was limited, and the feature was removed.  The compiler is guaranteed to generate good XML documentation, and there is little need (or none at all) to add a validation step to the build.  However, due to an oversight, this option was not removed from the IDE and its corresponding documentation. Consequently, selecting &#8220;Yes&#8221; for this option in the IDE causes &#8220;/validate&#8221; to be added to the XDCMake command line, and the tool generates the warning.</p>
<p class="topOfPage"><a href="http://kbalertz.com/948860/Warning-XDC0017-Unrecognized-XDCMake.aspx#top"></a></p>
<h2 class="subTitle" id="tocHeadRef">Resolution</h2>
<p class="sbody">Do not use this option.  Leave it at the default setting (&#8220;No&#8221;), or pay no heed to the warnings if you leave it on &#8220;Yes&#8221;.</p>
<p class="topOfPage"><a href="http://kbalertz.com/948860/Warning-XDC0017-Unrecognized-XDCMake.aspx#top"></a></p>
<h2 class="subTitle" id="tocHeadRef">More Information</h2>
<p class="sbody">MIcrosoft has no plans to re-implement the /validate switch, and the IDE option will be removed in a future release of the Visual C++ project engine.<br />
The <a href="http://msdn2.microsoft.com/en-us/library/ms177247.aspx">XDCMake command line</a><span class="pLink"> (http://msdn2.microsoft.com/en-us/library/ms177247.aspx)</span>, when used outside of Visual Studio, also supports a different set of options than the &#8220;/old&#8221; interface supported in Visual Studio 2005 and 2008.</p>
<p class="topOfPage"><a href="http://kbalertz.com/948860/Warning-XDC0017-Unrecognized-XDCMake.aspx#top"></a></p>
<h2 class="subTitle" id="tocHeadRef">DISCLAIMER</h2>
<p class="sbody">MICROSOFT AND/OR ITS SUPPLIERS MAKE NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY, RELIABILITY OR ACCURACY OF THE INFORMATION CONTAINED IN THE DOCUMENTS AND RELATED GRAPHICS PUBLISHED ON THIS WEBSITE (THE “MATERIALS”) FOR ANY PURPOSE. THE MATERIALS MAY INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS AND MAY BE REVISED AT ANY TIME WITHOUT NOTICE.</p>
<p>TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, MICROSOFT AND/OR ITS SUPPLIERS DISCLAIM AND EXCLUDE ALL REPRESENTATIONS, WARRANTIES, AND CONDITIONS WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO REPRESENTATIONS, WARRANTIES, OR CONDITIONS OF TITLE, NON INFRINGEMENT, SATISFACTORY CONDITION OR QUALITY, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT TO THE MATERIALS.</p>
<p class="topOfPage"><a href="http://kbalertz.com/948860/Warning-XDC0017-Unrecognized-XDCMake.aspx#top"></a></p>
<hr />
<h5>APPLIES TO</h5>
<table class="list">
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2005 Professional Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2005 Team Suite</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2008 Professional Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio Team System 2008 Team Suite</td>
</tr>
</table>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<h5>Microsoft Knowledge Base Article</h5>
<p class="MsoNormal">This article contents is Microsoft Copyrighted material.<br />
Microsoft Corporation. All rights reserved. <a href="http://support.microsoft.com/tou/">Terms of Use</a> | <a href="http://support.microsoft.com/library/toolbar/3.0/trademarks/en-us.mspx">Trademarks</a></p>
<div class="aizatto_related_posts"><span class="aizatto_related_posts_header" >Related Articles or Pages</span><ul></ul></div>]]></content:encoded>
			<wfw:commentRss>http://ossmall.info/vc-build-warning-xdc0017-unrecognized-xdcmake-option-validate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You receive error messages when you try to compile an MFC application by using the single-threaded run-time library in Visual C++: &#8220;Error LNK2001: unresolved external symbol&#8221;</title>
		<link>http://ossmall.info/you-receive-error-messages-when-you-try-to-compile-an-mfc-application-by-using-the-single-threaded-run-time-library-in-visual-c-error-lnk2001-unresolved-external-symbol/</link>
		<comments>http://ossmall.info/you-receive-error-messages-when-you-try-to-compile-an-mfc-application-by-using-the-single-threaded-run-time-library-in-visual-c-error-lnk2001-unresolved-external-symbol/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 13:52:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Fixes]]></category>

		<guid isPermaLink="false">http://ossmall.info/you-receive-error-messages-when-you-try-to-compile-an-mfc-application-by-using-the-single-threaded-run-time-library-in-visual-c-error-lnk2001-unresolved-external-symbol/</guid>
		<description><![CDATA[When compiling an MFC application using the single-threaded run-time library, you receive the following two unresolved external error messages:
nafxcwd.lib(thrdcore.obj) : error LNK2001:
unresolved external symbol &#8220;__beginthreadex&#8221; 
nafxcwd.lib(thrdcore.obj) : error LNK2001:
unresolved external symbol &#8220;__endthreadex&#8221;
CAUSE
 loadTOCNode(1, 'cause'); Starting with version 3.0, all MFC classes are &#8220;thread safe&#8221; and require the multi-threaded run-time libraries to link successfully. Many people [...]]]></description>
			<content:encoded><![CDATA[<p>When compiling an MFC application using the single-threaded run-time library, you receive the following two unresolved external error messages:</p>
<p><font color="#ff0000">nafxcwd.lib(thrdcore.obj) : error LNK2001:<br />
unresolved external symbol &#8220;__beginthreadex&#8221; </font></p>
<p><font color="#ff0000">nafxcwd.lib(thrdcore.obj) : error LNK2001:<br />
unresolved external symbol &#8220;__endthreadex&#8221;</font></p>
<h2>CAUSE</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'cause'); </script>Starting with version 3.0, all MFC classes are &#8220;thread safe&#8221; and require the multi-threaded run-time libraries to link successfully. Many people try to use the single-threaded run-time libraries because they assume these libraries are needed to enable the application to run in Win32s. This is not the case. MFC versions 3.0 and later will use a single thread, so as long as you are not creating additional threads in the application, the application will run under Win32s.</p>
<h2>RESOLUTION</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'resolution'); </script>To avoid these unresolved external errors, do not set the Project Settings to Single-Threaded for an MFC version 3.0 or later application. This setting can be changed by doing the following:</p>
<table border="0" cellpadding="0">
<tr>
<td>
<ul></ul>
</td>
<td><strong>On Microsoft Visual C++ 2005 or on Microsoft Visual C++   .NET</strong></p>
<p>To set the option, read the online help topic under <strong>Setting Visual   C++ Project Properties</strong>.</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td><strong>On Microsoft Visual C ++ 2.<var>x</var>, 5.0, and 6.0</strong></p>
<table border="0" cellpadding="0">
<tr>
<td>1.</td>
<td>Select the <strong>Project</strong> menu.</td>
</tr>
<tr>
<td>2.</td>
<td>Select the <strong>Settings&#8230;</strong> option.</td>
</tr>
<tr>
<td>3.</td>
<td>Select the <strong>C/C++</strong> tab.</td>
</tr>
<tr>
<td>4.</td>
<td>Select <strong>Code Generation</strong> on the <strong>Category</strong>     list box.</td>
</tr>
<tr>
<td>5.</td>
<td>Finally, make a selection other than <strong>Single-Threaded</strong>     on the <strong>Use Run Time Library</strong> list box.</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td><strong>On Microsoft Visual C++ 4.<var>x</var></strong></p>
<table border="0" cellpadding="0">
<tr>
<td>1.</td>
<td>Select the <strong>Build</strong> menu.</td>
</tr>
<tr>
<td>2.</td>
<td>Select the <strong>Settings&#8230;</strong> option.</td>
</tr>
<tr>
<td>3.</td>
<td>Select the <strong>C/C++</strong> tab.</td>
</tr>
<tr>
<td>4.</td>
<td>Select <strong>Code Generation</strong> on the <strong>Category</strong>     list box.</td>
</tr>
<tr>
<td>5.</td>
<td>Finally, make a selection other than <strong>Single-Threaded</strong>     on the <strong>Use Run Time Library</strong> list box.</td>
</tr>
</table>
</td>
</tr>
</table>
<h2>STATUS</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'status'); </script>This behavior is by design.</p>
<h2>MORE INFORMATION</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'moreinformation'); </script>For Win32s, MFC version 3.0 and later versions do not create additional threads. However, the MFC does use Thread Local Storage (TLS) in the multithreaded libraries to provide per-process data in DLLs that are used by multiple applications under Win32s.</p>
<p>In the <strong>Project Settings</strong> dialog box, if you select the run-time library option to link &#8220;Multithreaded using DLL,&#8221; you can take advantage of using the shared DLL, MSVCRT<var>x</var>0.DLL (where <var>x</var> represents the major version of Visual C++). There are separate versions of MSVCRT<var>x</var>0.DLL for Windows NT and Win32s that cannot be interchanged. &#8220;Multithreaded using DLL&#8221; is required when building an AFXDLL.</p>
<p>Linking to the multithreaded libraries may cause multiple defined symbol errors. This usually occurs when the application uses user-created or third-party static libraries that were created as single-threaded.</p>
<p>The best solution in this case is to rebuild the static libraries to use the same library options as MFC (either <strong>/MT</strong> or <strong>/MD</strong>, depending on which MFC lib is used).</p>
<p>In this case, you may be able to use <strong>/NOD:LIBC.LIB</strong>. However, if the static library accesses any static global C Run-Time data such as _errno or stdin, you will get unresolved externals on these symbols.</p>
<p>One solution which will always work is to isolate the single-threaded code into a DLL, and call it, protected by semaphores, from the multithreaded MFC code.</p>
<div class="aizatto_related_posts"><span class="aizatto_related_posts_header" >Related Articles or Pages</span><ul></ul></div>]]></content:encoded>
			<wfw:commentRss>http://ossmall.info/you-receive-error-messages-when-you-try-to-compile-an-mfc-application-by-using-the-single-threaded-run-time-library-in-visual-c-error-lnk2001-unresolved-external-symbol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The screen repeatedly flashes to a blank text-mode screen when you build from the development environment in Visual C++</title>
		<link>http://ossmall.info/the-screen-repeatedly-flashes-to-a-blank-text-mode-screen-when-you-build-from-the-development-environment-in-visual-c/</link>
		<comments>http://ossmall.info/the-screen-repeatedly-flashes-to-a-blank-text-mode-screen-when-you-build-from-the-development-environment-in-visual-c/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 13:18:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Fixes]]></category>

		<guid isPermaLink="false">http://ossmall.info/the-screen-repeatedly-flashes-to-a-blank-text-mode-screen-when-you-build-from-the-development-environment-in-visual-c/</guid>
		<description><![CDATA[When you build from the development environment in Visual C++, the screen repeatedly flashes to a blank text-mode screen with no text on it. A text cursor may show up if you move the mouse while the blank screen is showing. The screen returns to Visual C++ and then blanks out again. The blanking occurs [...]]]></description>
			<content:encoded><![CDATA[<p>When you build from the development environment in Visual C++, the screen repeatedly flashes to a blank text-mode screen with no text on it. A text cursor may show up if you move the mouse while the blank screen is showing. The screen returns to Visual C++ and then blanks out again. The blanking occurs at least twice but possibly more times during the entire build process.</p>
<h2>CAUSE</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'cause'); </script>The default settings for the Command Prompt on Microsoft Windows Server 2003, Microsoft Windows XP, Microsoft Windows Server 2000, Microsoft Windows NT, Microsoft Windows Millennium Edition, Microsoft Windows 98, or Microsoft Windows 95 are set to full screen.</p>
<h2>RESOLUTION</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'resolution'); </script>Depending on whether you are on Windows Server 2003, Windows XP, Windows Server 2000, Windows NT, Windows Millennium Edition, Windows 98, or Windows 95, the resolution process is different:</p>
<table border="0" cellpadding="0">
<tr>
<td>
<ul></ul>
</td>
<td>For Windows NT, Windows 2000 Server, Windows XP, and   Windows Server 2003, you must set the options for one of the following to   &#8220;Windowed&#8221;:</p>
<table border="0" cellpadding="0">
<tr>
<td>
<ul></ul>
</td>
<td>The environment settings of all Windows NT Command     Prompts.</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>The program Vcspawn.exe, which Visual C++ runs as a     background process.</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>For Windows 95, Windows 98, and Windows Me, you must reset   the options for one or all of the following:</p>
<table border="0" cellpadding="0">
<tr>
<td>
<ul></ul>
</td>
<td>_Default.pif</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Conagent.exe</td>
</tr>
</table>
</td>
</tr>
</table>
<p>Follow the instructions given in the &#8220;More Information&#8221; section.</p>
<h2>MORE INFORMATION</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'moreinformation'); </script>On Windows NT, Windows Server 2000, Windows XP, and Windows Server 2003, Visual C++ repeatedly invokes a background process called Vcspawn.exe for each command-line tool executed by the development environment. Tools such as Cl.exe, Link.exe, and Bscmake.exe run in the Vcspawn.exe environment, which is a 32-bit console application.</p>
<p>Usually Vcspawn.exe is invoked as a hidden window and you never see it. However, if the setting for Vcspawn.exe is in &#8220;full screen&#8221; mode, the screen switches to text mode each time Vcspawn.exe is invoked. No text is actually sent to the Vcspawn screen, so the screen appears blank.</p>
<p>On Windows 95, Windows 98, and Windows Me, Vcspawn.exe is affected by the presence of the _Default.pif and the settings of the Conagent.exe file. If a _Default.pif is in the path, its properties will be used for all invoked console applications. Often, a _Default.pif is left over from a previous Windows 3.1 or 3.11 installation. Windows 95, Windows 98, and Windows Me do not create one during installation. If _Default.pif is not present, Windows 95, Windows 98, and Windows Me use the properties of Conagent.exe.</p>
<h3>On Windows NT, Windows Server 2000, Windows XP, or Windows Server 2003</h3>
<p><script type="text/javascript"> loadTOCNode(2, 'moreinformation'); </script>Use one of the following two procedures to correct the problem:</p>
<h3>Steps to Reset Default Configuration of ALL Command Prompts</h3>
<p><script type="text/javascript"> loadTOCNode(2, 'moreinformation'); </script>On Windows NT:</p>
<table border="0" cellpadding="0">
<tr>
<td>1.</td>
<td>Go to the Windows NT Control Panel.</td>
</tr>
<tr>
<td>2.</td>
<td>Double-click the <strong>Console</strong> icon.</td>
</tr>
<tr>
<td>3.</td>
<td>Click the <strong>General Settings</strong> or <strong>Options</strong> tab.</td>
</tr>
<tr>
<td>4.</td>
<td>Select <strong>Window</strong> under the <strong>Display Options</strong>   group.</td>
</tr>
<tr>
<td>5.</td>
<td>Click <strong>OK</strong>.</td>
</tr>
</table>
<p>On Windows Server 2000, Windows XP, and Windows Server 2003:</p>
<table border="0" cellpadding="0">
<tr>
<td>1.</td>
<td>Run Regedt32, which is located in the \System32 subfolder   of the Windows NT root folder.</td>
</tr>
<tr>
<td>2.</td>
<td>Open the <strong>\HKEY_CURRENT_USER\Console</strong> branch of the   registry tree.</td>
</tr>
<tr>
<td>3.</td>
<td>Set the <strong>FullScreen</strong> value to 0.</td>
</tr>
<tr>
<td>4.</td>
<td>Exit the registry editor.</td>
</tr>
</table>
<h3>Steps to Reset Configuration for Just Vcspawn.exe by Using Regedt32</h3>
<p><script type="text/javascript"> loadTOCNode(2, 'moreinformation'); </script>Use the following process to add a registry entry so only Vcspawn&#8217;s settings are not &#8220;full screen.&#8221;</p>
<table border="0" cellpadding="0">
<tr>
<td>1.</td>
<td>Run Regedt32, which is located in the \System32   subdirectory of the Windows NT root directory.</td>
</tr>
<tr>
<td>2.</td>
<td>Open the \HKEY_CURRENT_USER\Console branch of the registry   tree.</td>
</tr>
<tr>
<td>3.</td>
<td>Choose <strong>Add Key</strong> on the <strong>Edit</strong> menu to add a   node called:</p>
<pre>C:_MSVC20_BIN_vcspawn.exe</pre>
<pre></pre>
<p>If Visual C++ is installed in a different directory or on   a different drive, use the following form for the Key Name:</p>
<pre>&lt;drive&gt;:_DIR1_DIR2_DIR3..._vcspawn.exe</pre>
<pre></pre>
<p>Leave the Class field empty.</td>
</tr>
<tr>
<td>4.</td>
<td>With &#8220;C:_MSVC20_BIN_vcspawn.exe&#8221; highlighted,   click <strong>Add Value</strong> on the <strong>Edit</strong> menu. In <strong>Value Name</strong>, type FullScreen. In <strong>Data Type</strong>, select <strong>REG_DWORD</strong>.   Click <strong>OK</strong>, and then add a value of 0 (zero).</td>
</tr>
<tr>
<td>5.</td>
<td>Exit the registry editor, and restart Visual C++.</td>
</tr>
</table>
<h3>Steps to Reset Configuration for Just Vcspawn.exe Without Using Regedt32</h3>
<p><script type="text/javascript"> loadTOCNode(2, 'moreinformation'); </script>If you are unfamiliar with the system registry and do not want to reset the default configurations for the Command Prompt, use the following procedure to reset the settings for Vcspawn. This procedure adds the same registry entry.</p>
<p><strong>NOTE:</strong> if you have a fast machine, you may have trouble performing some of the following steps and you need a larger project. Therefore, if you have a fast machine, use one of the previous methods to work around the problem.</p>
<p>If you are compiling a large project, you can switch tasks and see the minimized Vcspawn.exe icon. Resetting the attributes of this icon will reset the attributes of Vcspawn.</p>
<table border="0" cellpadding="0">
<tr>
<td>1.</td>
<td>Open a large project, such as the sample project CTRLBARS   or SUPERPAD supplied with Visual C++.</td>
</tr>
<tr>
<td>2.</td>
<td>Choose to <strong>Rebuild All</strong>.</td>
</tr>
<tr>
<td>3.</td>
<td>Press ALT+TAB to see the minimized Vcspawn icon in the   corner of the screen.</td>
</tr>
<tr>
<td>4.</td>
<td>Quickly open the system menu, and follow the steps shown   in the &#8220;Steps to Reset Default Configuration of ALL Command   Prompts&#8221; section of this article.</td>
</tr>
</table>
<p><strong>NOTE:</strong> You must save the configuration before the development environment finishes the build process. If you do not, the Vcspawn.exe window will be terminated, the icon will disappear and any changes you made will not be saved.</p>
<h3>On Windows 95, Windows 98, and Windows Me:</h3>
<p><script type="text/javascript"> loadTOCNode(2, 'moreinformation'); </script>Use one of the following procedures to correct the problem.</p>
<h3>Steps to Reset Configuration of _Default.pif</h3>
<table border="0" cellpadding="0">
<tr>
<td><script type="text/javascript"> loadTOCNode(2, 'moreinformation');   </script>1.</td>
<td>In the Explorer, right-click the _DEFAULT file with the <strong>MS-DOS</strong>   icon next to it in your Windows directory.</td>
</tr>
<tr>
<td>2.</td>
<td>Choose <strong>Properties</strong>.</td>
</tr>
<tr>
<td>3.</td>
<td>Click the <strong>Screen</strong> tab.</td>
</tr>
<tr>
<td>4.</td>
<td>Choose the <strong>Window</strong> option and click <strong>Apply</strong>,   then <strong>OK</strong>.</td>
</tr>
</table>
<h3>Steps to Reset Configuration of Conagent.exe</h3>
<table border="0" cellpadding="0">
<tr>
<td><script type="text/javascript"> loadTOCNode(2, 'moreinformation');   </script>1.</td>
<td>Make sure there is no _Default.pif file in your path;   specifically check your Windows directory.</td>
</tr>
<tr>
<td>2.</td>
<td>Follow the instructions for steps 2, 3, and 4 above given for   resetting _Default.pif on the file Conagent.exe in your Windows or Windows   System directory.</td>
</tr>
</table>
<hr align="center" size="2" width="100%" />
<h5>APPLIES TO</h5>
<table border="0" cellpadding="0">
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual C++ 6.1</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual C++ .NET 2003 Standard Edition</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual C++ .NET 2002 Standard Edition</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual C++ 2005 Express Edition</td>
</tr>
</table>
<div class="aizatto_related_posts"><span class="aizatto_related_posts_header" >Related Articles or Pages</span><ul></ul></div>]]></content:encoded>
			<wfw:commentRss>http://ossmall.info/the-screen-repeatedly-flashes-to-a-blank-text-mode-screen-when-you-build-from-the-development-environment-in-visual-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You receive a &#8220;NMAKE : fatal error U1045: spawn failed : Invalid argument&#8221; error message when you compile a makefile by using the Microsoft Program Maintenance utility</title>
		<link>http://ossmall.info/you-receive-a-nmake-fatal-error-u1045-spawn-failed-invalid-argument-error-message-when-you-compile-a-makefile-by-using-the-microsoft-program-maintenance-utility/</link>
		<comments>http://ossmall.info/you-receive-a-nmake-fatal-error-u1045-spawn-failed-invalid-argument-error-message-when-you-compile-a-makefile-by-using-the-microsoft-program-maintenance-utility/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 13:17:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Fixes]]></category>

		<guid isPermaLink="false">http://ossmall.info/you-receive-a-nmake-fatal-error-u1045-spawn-failed-invalid-argument-error-message-when-you-compile-a-makefile-by-using-the-microsoft-program-maintenance-utility/</guid>
		<description><![CDATA[When you compile a makefile by using the Microsoft Program Maintenance utility, Nmake.exe (NMAKE), you may receive the following error message:
NMAKE : fatal error U1045: spawn failed : Invalid argument
CAUSE
 loadTOCNode(1, 'cause'); NMAKE uses the command interpreter to spawn the different tools that are needed to build the targets. The path to the command interpreter [...]]]></description>
			<content:encoded><![CDATA[<p>When you compile a makefile by using the Microsoft Program Maintenance utility, Nmake.exe (NMAKE), you may receive the following error message:</p>
<p>NMAKE : fatal error U1045: spawn failed : Invalid argument</p>
<h2>CAUSE</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'cause'); </script>NMAKE uses the command interpreter to spawn the different tools that are needed to build the targets. The path to the command interpreter is found by querying for the value of the ComSpec environment variable. If the ComSpec environment variable is set incorrectly, you receive the error message shown in the &#8220;Symptoms&#8221; section.</p>
<h2>RESOLUTION</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'resolution'); </script>To resolve this problem, ensure that the ComSpec environment variable is set correctly.</p>
<p>For Microsoft Windows NT and Microsoft Windows 2000, the command interpreter is Cmd.exe. The ComSpec environment variable should contain the following:</p>
<p>%SYSTEMROOT%\System32\Cmd.exe</p>
<p>To view and modify the ComSpec environment variable in Windows NT:</p>
<table border="0" cellpadding="0">
<tr>
<td>1.</td>
<td>Open Control Panel.</td>
</tr>
<tr>
<td>2.</td>
<td>Double-click the <strong>System</strong> icon, and then click the <strong>Environment</strong>   tab.</td>
</tr>
<tr>
<td>3.</td>
<td>Select the ComSpec variable, which is located in the <strong>System   Variables</strong> box.</td>
</tr>
<tr>
<td>4.</td>
<td>Modify the variable by using the <strong>Value</strong> edit box.</td>
</tr>
</table>
<p>To view and modify the ComSpec environment variable in Microsoft Windows Server 2003, in Windows 2000, and in Windows XP, follow these steps:</p>
<table border="0" cellpadding="0">
<tr>
<td>1.</td>
<td>Open Control Panel.</td>
</tr>
<tr>
<td>2.</td>
<td>Double-click the <strong>System</strong> icon, click the <strong>Advanced</strong>   tab, and then click <strong>Environment Variables</strong>.</td>
</tr>
<tr>
<td>3.</td>
<td>Select the ComSpec variable, which is located in the <strong>System   Variables</strong> box.</td>
</tr>
<tr>
<td>4.</td>
<td>Click <strong>Edit</strong> to modify the variable.</td>
</tr>
</table>
<p>For Microsoft Windows 95, Microsoft Windows 98, and Microsoft Windows Millennium (Me), the command interpreter is Command.com. The ComSpec environment variable should contain the following:</p>
<p>%WINDIR%\Command.com</p>
<p>To view the value of the ComSpec environment variable:</p>
<table border="0" cellpadding="0">
<tr>
<td>1.</td>
<td>Start the command interpreter. Click <strong>Start</strong>, point   to <strong>Programs</strong>, and then click <strong>MS-DOS Prompt</strong>.</td>
</tr>
<tr>
<td>2.</td>
<td>At the command prompt, type set,   and then press ENTER.</td>
</tr>
</table>
<p>A list of all of the environment variables should be displayed in alphabetical order.</p>
<p>To correctly set the ComSpec environment variable:</p>
<table border="0" cellpadding="0">
<tr>
<td>1.</td>
<td>Open the Autoexec.bat file and add the following line:</p>
<p>set ComSpec=%WINDIR%\Command.com</td>
</tr>
<tr>
<td>2.</td>
<td>Save the Autoexec.bat file and restart the computer.</td>
</tr>
</table>
<p><strong>NOTE</strong>: On all these operating systems, ComSpec must not contain multiple paths. Only a single path is acceptable.</p>
<h2>MORE INFORMATION</h2>
<h3><script type="text/javascript"> loadTOCNode(1, 'moreinformation'); </script>Steps to reproduce the behavior in Windows 2000</h3>
<table border="0" cellpadding="0">
<tr>
<td><script type="text/javascript"> loadTOCNode(2, 'moreinformation');   </script>1.</td>
<td>Start the command interpreter. Click <strong>Start</strong>, point   to <strong>Programs</strong>, point to <strong>Accessories</strong>, and then click <strong>Command   Prompt</strong>.</td>
</tr>
<tr>
<td>2.</td>
<td>Type the following at the command prompt, and then press   ENTER:</p>
<p>set ComSpec=%ComSpec%;%ComSpec%</td>
</tr>
<tr>
<td>3.</td>
<td>Run NMAKE on your make file.</td>
</tr>
</table>
<hr align="center" size="2" width="100%" />
<h5>APPLIES TO</h5>
<table border="0" cellpadding="0">
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual C++ 5.0 Enterprise Edition</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual C++ 6.0 Enterprise Edition</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual C++ 5.0 Professional Edition</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual C++ 6.0 Professional Edition</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual C++, 32-bit Learning Edition 6.0</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual C++ .NET 2002 Standard Edition</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual C++ .NET 2003 Standard Edition</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual C++ 2005 Express Edition</td>
</tr>
</table>
<div class="aizatto_related_posts"><span class="aizatto_related_posts_header" >Related Articles or Pages</span><ul></ul></div>]]></content:encoded>
			<wfw:commentRss>http://ossmall.info/you-receive-a-nmake-fatal-error-u1045-spawn-failed-invalid-argument-error-message-when-you-compile-a-makefile-by-using-the-microsoft-program-maintenance-utility/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FIX: An ISAPI DLL is not registered when you run an ATL Server application that contains performance counters in Windows Vista</title>
		<link>http://ossmall.info/fix-an-isapi-dll-is-not-registered-when-you-run-an-atl-server-application-that-contains-performance-counters-in-windows-vista/</link>
		<comments>http://ossmall.info/fix-an-isapi-dll-is-not-registered-when-you-run-an-atl-server-application-that-contains-performance-counters-in-windows-vista/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 22:21:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Fixes]]></category>
		<category><![CDATA[Vista HowTo]]></category>

		<guid isPermaLink="false">http://ossmall.info/fix-an-isapi-dll-is-not-registered-when-you-run-an-atl-server-application-that-contains-performance-counters-in-windows-vista/</guid>
		<description><![CDATA[SYMPTOMS
 loadTOCNode(1, \\'symptoms\\'); A Microsoft Visual C++ 2005 Active Template Library (ATL) Server project contains performance counters. This project is configured to register an Internet Server API (ISAPI) DLL on a Windows Vista-based computer. However, the ISAPI DLL is not registered when you run the ATL Server application. Additionally, when you try to register the [...]]]></description>
			<content:encoded><![CDATA[<h3>SYMPTOMS</h3>
<p><script type="text/javascript"> loadTOCNode(1, \\'symptoms\\'); </script>A Microsoft Visual C++ 2005 Active Template Library (ATL) Server project contains performance counters. This project is configured to register an Internet Server API (ISAPI) DLL on a Windows Vista-based computer. However, the ISAPI DLL is not registered when you run the ATL Server application. Additionally, when you try to register the ISAPI DLL manually, you may receive an error message that resembles the following:</p>
<p>0&#215;80070002 COR_E_FILENOTFOUND</p>
<h3>CAUSE</h3>
<p><script type="text/javascript"> loadTOCNode(1, \\'cause\\'); </script>This problem occurs because the performance counter infrastructure in Windows Vista prevents a call to the <strong>RegSetValue</strong> function from modifying system files. Windows Vista prevents changes to system files to guarantee reliability of the operating system. The <strong>RegSetValue</strong> function must modify system files to install ATL-based performance counters.</p>
<h3>WORKAROUND</h3>
<p><script type="text/javascript"> loadTOCNode(1, \\'workaround\\'); </script><strong>Warning</strong> Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall the operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk.</p>
<p>To work around this problem, modify the registry to configre the Windows Vista performance counter infrastructure to bypass the system files integrity check. To do this, you must modify the Configuration Flags registry value that is located in the HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib registry key. If the registry value contains the 0&#215;00010000 flag, Windows Vista bypasses the integrity check.</p>
<p>To do this, follow these steps:</p>
<table border="0" cellpadding="0">
<tr>
<td>1.</td>
<td>Click <strong>Start</strong>, type regedit   in the <strong>Start Search</strong> box, and then click regedit.exe in the <strong>Programs</strong> list.If you are prompted for an administrator password or for confirmation, type   your password, or click <strong>Continue</strong>.</td>
</tr>
<tr>
<td>2.</td>
<td>Locate and then click the following registry subkey:<strong>HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion</strong></td>
</tr>
<tr>
<td>3.</td>
<td>Click <strong>CurrentVersion</strong>, right-click <strong>Perflib</strong>,   and then click <strong>Modify</strong>.</td>
</tr>
<tr>
<td>4.</td>
<td>Click <strong>CurrentVersion</strong>, and then click <strong>Perflib</strong>.</td>
</tr>
<tr>
<td>5.</td>
<td>If the <strong>Configurations Flags</strong> value exists,   right-click <strong>Configuration Flags</strong>, and then click <strong>Modify</strong>.   If the <strong>Configuration Flags</strong> value does not exist, go to step   7.</td>
</tr>
<tr>
<td>6.</td>
<td>Type 10000, and then click <strong>OK</strong>.</td>
</tr>
<tr>
<td>7.</td>
<td>Right-click <strong>Perflib</strong>, click <strong>New</strong>,   and then click <strong>DWORD (32-bit) Value</strong>.</td>
</tr>
<tr>
<td>8.</td>
<td>Type Configuration Flags, and   then press ENTER.</td>
</tr>
<tr>
<td>9.</td>
<td>Right-click <strong>Configuration Flags</strong>, and then   click <strong>Modify</strong>.</td>
</tr>
<tr>
<td>10.</td>
<td>Type 10000, and then click <strong>OK</strong>.</td>
</tr>
<tr>
<td>11.</td>
<td>Type 0&#215;00010000 in the <strong>Value   data</strong> box.</td>
</tr>
<tr>
<td>12.</td>
<td>Exit Registry Editor.</td>
</tr>
</table>
<h3>STATUS</h3>
<p><script type="text/javascript"> loadTOCNode(1, \\'status\\'); </script>Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the &#8220;Applies to&#8221; section.</p>
<h3>MORE INFORMATION</h3>
<p><script type="text/javascript"> loadTOCNode(1, \\'moreinformation\\'); </script>The ATL is a set of template-based C++ classes that simplify programming Microsoft Component Object Model (COM) objects. The ATL Server Library is a set of template-based C++ classes for creating Web applications, Web services, and other server applications.</p>
<hr align="center" size="2" width="100%" />
<h5>APPLIES TO</h5>
<table border="0" cellpadding="0">
<tr>
<td>&nbsp;</td>
<td>Microsoft Windows Code Name &#8220;Longhorn&#8221;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Windows Vista Starter</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Windows Vista Home Basic</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Windows Vista Home Premium</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Windows Vista Ultimate</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Windows Vista Enterprise</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Windows Vista Business</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Windows Vista Home Basic 64-bit Edition</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Windows Vista Home Premium 64-bit Edition</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Windows Vista Enterprise 64-bit Edition</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Windows Vista Ultimate 64-bit Edition</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Microsoft Visual Studio 2005 Team Suite</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Microsoft Visual Studio 2005 Standard Edition</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Microsoft Visual Studio 2005 Service Pack 1</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Microsoft Visual Studio 2005 Professional Edition</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Microsoft Visual Studio 2005 Team Edition for Database   Professionals</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Microsoft Visual Studio 2005 Team Edition for Software   Architects</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Microsoft Visual Studio 2005 Team Edition for Software   Developers</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Microsoft Visual Studio 2005 Team Edition for Software   Testers</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Microsoft Visual Studio 2005 Team Foundation Server</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Microsoft Visual Studio 2005 Team Foundation</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Microsoft Visual Studio 2005 Team System Test Edition</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Microsoft Visual Studio 2005 Express Edition</td>
</tr>
</table>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<h5>Microsoft Knowledge Base Article</h5>
<p class="MsoNormal">This article contents is Microsoft Copyrighted material.<br />
Microsoft Corporation. All rights reserved. <a href="http://support.microsoft.com/tou/">Terms of Use</a> | <a href="http://support.microsoft.com/library/toolbar/3.0/trademarks/en-us.mspx">Trademarks</a></p>
<p><o:p> </o:p></p>
<div class="aizatto_related_posts"><span class="aizatto_related_posts_header" >Related Articles or Pages</span><ul></ul></div>]]></content:encoded>
			<wfw:commentRss>http://ossmall.info/fix-an-isapi-dll-is-not-registered-when-you-run-an-atl-server-application-that-contains-performance-counters-in-windows-vista/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BUG: Help topic for the java.io.PipedOutputStream class is not correct in Visual Studio .NET or in Visual Studio 2005</title>
		<link>http://ossmall.info/bug-help-topic-for-the-javaiopipedoutputstream-class-is-not-correct-in-visual-studio-net-or-in-visual-studio-2005/</link>
		<comments>http://ossmall.info/bug-help-topic-for-the-javaiopipedoutputstream-class-is-not-correct-in-visual-studio-net-or-in-visual-studio-2005/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 13:15:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Fixes]]></category>

		<guid isPermaLink="false">http://ossmall.info/bug-help-topic-for-the-javaiopipedoutputstream-class-is-not-correct-in-visual-studio-net-or-in-visual-studio-2005/</guid>
		<description><![CDATA[SYMPTOMS
 loadTOCNode(1, 'symptoms'); You have a Visual J++ project with a class that uses the java.io.PipedOutputStream object. When you convert your Visual J++ project to a Visual C# .NET project by using the Java Language Conversion Assistant (JLCA), the java.io.PipedOutputStream object is not converted completely in the Visual C# .NET or in Visual C# 2005 [...]]]></description>
			<content:encoded><![CDATA[<h2>SYMPTOMS</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'symptoms'); </script>You have a Visual J++ project with a class that uses the <strong>java.io.PipedOutputStream</strong> object. When you convert your Visual J++ project to a Visual C# .NET project by using the Java Language Conversion Assistant (JLCA), the <strong>java.io.PipedOutputStream</strong> object is not converted completely in the Visual C# .NET or in Visual C# 2005 code that is generated. When you open the Microsoft Visual Studio .NET or Microsoft Visual Studio 2005 Help topic that is listed in the UPGRADE_ISSUE comment, the <strong>java.io.PipedOutputStream</strong> class is listed as <strong>System.IO.StreamReader</strong> in the Help topic. This is not correct.</p>
<p>In Visual J++, this constructor creates a piped output stream that is not yet connected to a piped input stream.<br />
In the .NET Framework, the equivalent is the <strong>System.IO.StreamReader</strong> class, but it has no empty constructor.<br />
<strong>To correct this error </strong></p>
<table border="0" cellpadding="0">
<tr>
<td>
<ul></ul>
</td>
<td>Use <strong>StreamReader</strong> by specifying an input stream.</td>
</tr>
</table>
<h2>RESOLUTION</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'resolution'); </script>In the Microsoft .NET Framework, the equivalent of <strong>java.io.PipedOutputStream</strong> is <strong>System.IO.StreamWriter</strong>, not <strong>System.IO.StreamReader</strong>. The Help topic should read as follows:</p>
<p>In Visual J++, this constructor creates a piped output stream that is not yet connected to a piped input stream.<br />
In the .NET Framework, the equivalent is the <strong>System.IO.StreamWriter</strong> class, but it has no empty constructor.<br />
<strong>To correct this error </strong></p>
<table border="0" cellpadding="0">
<tr>
<td>
<ul></ul>
</td>
<td>Use <strong>StreamWriter</strong> by specifying an input stream.</td>
</tr>
</table>
<h2>STATUS</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'status'); </script>Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.</p>
<h2>MORE INFORMATION</h2>
<h3><script type="text/javascript"> loadTOCNode(1, 'moreinformation'); </script>Steps to Reproduce the Behavior</h3>
<table border="1" cellpadding="0">
<tr>
<td><script type="text/javascript"> loadTOCNode(2, 'moreinformation');   </script>1.</td>
<td>Start Visual J++ 6.0.</td>
</tr>
<tr>
<td>2.</td>
<td>On the <strong>File</strong> menu, click <strong>New   Project</strong>.</td>
</tr>
<tr>
<td>3.</td>
<td>On the <strong>New</strong> tab, expand <strong>Visual J++   Projects</strong>, and then click <strong>Applications</strong>.</td>
</tr>
<tr>
<td>4.</td>
<td>In the right pane, click <strong>Console Application</strong>.</td>
</tr>
<tr>
<td>5.</td>
<td>Type MyVJTestApplication in   the <strong>Name</strong> box, and then click <strong>Open</strong>.</td>
</tr>
<tr>
<td>6.</td>
<td>Replace the existing code with the following code for <strong>Class1.java</strong>:</p>
<pre>import java.io.*;</pre>
<pre>public class Class1</pre>
<pre>{</pre>
<pre>        public static void main (String[] args)</pre>
<pre>        {</pre>
<pre>               // Create a new PipedOutputStream object.</pre>
<pre>               PipedOutputStream myOutStream = new PipedOutputStream();</pre>
<pre>        }</pre>
<pre>}</pre>
</td>
</tr>
<tr>
<td>7.</td>
<td>On the <strong>File</strong> menu, click <strong>Save All</strong>.</td>
</tr>
<tr>
<td>8.</td>
<td>Quit Visual J++.</td>
</tr>
<tr>
<td>9.</td>
<td>Start Microsoft Visual Studio .NET 2003 or Microsoft   Visual Studio 2005.</td>
</tr>
<tr>
<td>10.</td>
<td>On the <strong>File</strong> menu, point to <strong>Open</strong>,   and then click <strong>Convert</strong>.</td>
</tr>
<tr>
<td>11.</td>
<td>Click <strong>Java Language Conversion Assistant</strong>   under <strong>Available Converters</strong>, and then click <strong>OK</strong>.</td>
</tr>
<tr>
<td>12.</td>
<td>Follow the instructions in the JLCA Wizard to convert the   Visual J++ project that you created.</td>
</tr>
<tr>
<td>13.</td>
<td>In the code editor for Class1.cs, right-click <strong>ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?   keyword=&#8221;jlca1000_javaioPipedOutputStreamPipedOutputStream</strong>, and   then click <strong>Open URL</strong>.</td>
</tr>
</table>
<h2>REFERENCES</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'references'); </script>For more information about the <strong>java.io.PipedOutputStream</strong> class, visit the following Microsoft Developer Network (MSDN) Web site:</p>
<p><a href="http://msdn.microsoft.com/library/en-us/vjref98/html/java.io.pipedoutputstream.asp">http://msdn.microsoft.com/library/en-us/vjref98/html/java.io.pipedoutputstream.asp</a> (http://msdn.microsoft.com/library/en-us/vjref98/html/java.io.pipedoutputstream.asp)</p>
<hr align="center" size="2" width="100%" />
<h5>APPLIES TO</h5>
<table border="0" cellpadding="0">
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual J++ 6.0 Standard Edition</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual C# 2005 Express Edition</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual C# .NET 2003 Standard Edition</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual C# .NET 2002 Standard Edition</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual J++ 1.0 Standard Edition</td>
</tr>
</table>
<div class="aizatto_related_posts"><span class="aizatto_related_posts_header" >Related Articles or Pages</span><ul></ul></div>]]></content:encoded>
			<wfw:commentRss>http://ossmall.info/bug-help-topic-for-the-javaiopipedoutputstream-class-is-not-correct-in-visual-studio-net-or-in-visual-studio-2005/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Error message in Visual C++ when you delete a pointer to a const object:</title>
		<link>http://ossmall.info/error-message-in-visual-c-when-you-delete-a-pointer-to-a-const-object/</link>
		<comments>http://ossmall.info/error-message-in-visual-c-when-you-delete-a-pointer-to-a-const-object/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 12:32:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Fixes]]></category>

		<guid isPermaLink="false">http://ossmall.info/error-message-in-visual-c-when-you-delete-a-pointer-to-a-const-object/</guid>
		<description><![CDATA[Attempting to delete a pointer to a constant causes the compiler to generate the following correct error message:
Error C2710 : cannot delete a pointer to a const object
NOTE: Visual C++ .NET compiler does not demonstrate this issue in conformance to the changes made in the C++ ANSI Standards.
CAUSE
 loadTOCNode(1, 'cause'); Deleting a pointer to a [...]]]></description>
			<content:encoded><![CDATA[<p>Attempting to delete a pointer to a constant causes the compiler to generate the following correct error message:</p>
<p><font color="#ff0000">Error C2710 : cannot delete a pointer to a const object</font></p>
<p><strong>NOTE</strong>: Visual C++ .NET compiler does not demonstrate this issue in conformance to the changes made in the C++ ANSI Standards.</p>
<h2>CAUSE</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'cause'); </script>Deleting a pointer to a constant should not be allowed by definition (ARM section 5.3.4) because it modifies the object pointed to. However, if you deliberately or accidentally use the explicit conversion, the compiler doesn&#8217;t generate the error. The consequences of a such attempt are unpredictable and compiler implementation dependent.</p>
<h2>STATUS</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'status'); </script>This behavior is by design.</p>
<h2>MORE INFORMATION</h2>
<h3><script type="text/javascript"> loadTOCNode(1, 'moreinformation'); </script>Sample Code #1 to Demonstrate Behavior</h3>
<pre><script type="text/javascript">
loadTOCNode(2, 'moreinformation');
</script>/* No special compile options needed. */</pre>
<pre></pre>
<pre>const int * pi   = new int(1000);</pre>
<pre>const char * pch = new char(65);</pre>
<pre></pre>
<pre>void main(void)</pre>
<pre>{</pre>
<pre>  delete  pi  ;// Error C2710:cannot delete a pointer to a const object</pre>
<pre>  delete  pch ;// Error C2710:cannot delete a pointer to a const object</pre>
<pre>}</pre>
<pre></pre>
<p>Visual C++ version 5.0 and 6.0 generate the following error:</p>
<p><font color="#ff0000">Error C2664: &#8216;delete&#8217; : cannot convert parameter 1 from &#8216;const char *&#8217; to &#8216;void *&#8217;</font></p>
<h3>Sample Code #2 to Demonstrate Behavior</h3>
<pre><script type="text/javascript">
loadTOCNode(2, 'moreinformation');
</script>/* No special compile options needed.</pre>
<pre>   The type casting of the pointer to const argument of the delete</pre>
<pre>   operator prevents the C2710 error but is not recommended. */</pre>
<pre></pre>
<pre>const int * pi   = new int(1000);</pre>
<pre>const char * pch = new char(65);</pre>
<pre></pre>
<pre>void main(void)</pre>
<pre>{</pre>
<pre>   delete (int *) pi;   //no error C2710 generated</pre>
<pre>   delete (char *) pch; //no error C2710 generated</pre>
<pre></pre>
<pre>}</pre>
<pre></pre>
<div class="aizatto_related_posts"><span class="aizatto_related_posts_header" >Related Articles or Pages</span><ul></ul></div>]]></content:encoded>
			<wfw:commentRss>http://ossmall.info/error-message-in-visual-c-when-you-delete-a-pointer-to-a-const-object/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Applications Using Older ATL Components May Experience Conflicts With DEP</title>
		<link>http://ossmall.info/applications-using-older-atl-components-may-experience-conflicts-with-dep/</link>
		<comments>http://ossmall.info/applications-using-older-atl-components-may-experience-conflicts-with-dep/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 15:22:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Fixes]]></category>

		<guid isPermaLink="false">http://ossmall.info/applications-using-older-atl-components-may-experience-conflicts-with-dep/</guid>
		<description><![CDATA[
&#160;
An application that uses components built with ATL version 7.1 or earlier is built with the /NXCOMPAT (http://msdn2.microsoft.com/en-us/library/ms235442.aspx) switch, or is otherwise treated by the OS as being &#8220;No eXecute Compatible&#8221;.  Installing Visual Studio 2008 can cause programs subsequently built with VS 2008 or VS 2005 to enable NX compatibility by default.  Also, if the DEP policy [...]]]></description>
			<content:encoded><![CDATA[<p><span id="ctl00_ContentPlaceHolder1_MicrosoftKBArticle"></p>
<p class="section">&nbsp;</p>
<p class="sbody">An application that uses components built with ATL version 7.1 or earlier is built with the <a href="http://msdn2.microsoft.com/en-us/library/ms235442.aspx">/NXCOMPAT</a><span class="pLink"> (http://msdn2.microsoft.com/en-us/library/ms235442.aspx)</span> switch, or is otherwise treated by the OS as being &#8220;No eXecute Compatible&#8221;.  Installing Visual Studio 2008 can cause programs subsequently built with VS 2008 or VS 2005 to enable NX compatibility by default.  Also, if the DEP policy for the system is set to AlwaysOn, applications that incorporate the older thunking code will see this problem.</p>
<p class="topOfPage"><a href="http://kbalertz.com/948468/Applications-Using-Older-Components-Experience-Conflicts.aspx#top"><br />
</a></p>
<h2 class="subTitle" id="tocHeadRef">Result</h2>
<p class="sbody">The program may generate an access violation, due to <a href="http://msdn2.microsoft.com/en-us/library/aa366553.aspx">Data Execution Prevention (DEP)</a><span class="pLink"> (http://msdn2.microsoft.com/en-us/library/aa366553.aspx)</span> detecting the &#8220;thunk&#8221; attempt from the older ATL code.</p>
<p>If attempting to add such an ATL control to a form designer in Visual Studio, you may see a misleading error like &#8220;Unable to get window handle for the AxMyATLCtrl control, windowless ActiveX controls are not supported&#8221;.  The inner exception, if viewed, would be more revealing: &#8220;Attempted to read or write protected memory. This is often an indication that other memory is corrupt.&#8221;  However, in this case, corruption is most likely not the problem, but rather the attempt to execute code in NX memory.</p>
<p class="topOfPage"><a href="http://kbalertz.com/948468/Applications-Using-Older-Components-Experience-Conflicts.aspx#top"><br />
</a></p>
<h2 class="subTitle" id="tocHeadRef">Cause</h2>
<p class="sbody">ATL 7.1 and earlier versions were not designed with foreknowledge of the DEP security feature. Newer versions of Windows (e.g., XP SP2, 2003 Server, Vista) provide additional protection against malicious attacks via the DEP feature, but they were also coded to recognize the old ATL &#8220;thunk&#8221; pattern and allow it to execute when the process is not marked as NX compatible and thunk emulation is enabled. Thunk emulation is the default, except when a process is marked NX compatible, or if the system DEP policy has disabled it.  If the /NXCOMPAT switch is used in the linking of the application, or the application process is marked by some other means as NX Compatible, then thunk emulation will be disabled, and the older ATL components may cause an access violation exception.  When the system DEP policy is set to AlwaysOn, ATL thunk emulation is disabled, regardless of the NXCOMPAT attribute for the process.</p>
<p class="topOfPage"><a href="http://kbalertz.com/948468/Applications-Using-Older-Components-Experience-Conflicts.aspx#top"><br />
</a></p>
<h2 class="subTitle" id="tocHeadRef">Resolution</h2>
<p class="sbody">
<table class="list ul">
<tr>
<td class="bullet">•</td>
<td class="text">If possible, replace the older components with ones built to support the &#8220;No eXecute Compatibility&#8221;, such as those using ATL 8.0 or newer.  The ATL thunk strategy was devised as a lookup convenience and to avoid using thread-local storage for a window-handle-to-object map, but the thunk emulation required in DEP-aware OS&#8217;s negates and even reverses any performance improvement.  Newer versions of ATL don&#8217;t require the thunk emulation because their thunks are created in executable data blocks.</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">The <a href="http://msdn2.microsoft.com/en-us/library/bb736299.aspx">SetProcessDEPPolicy Function</a><span class="pLink"> (http://msdn2.microsoft.com/en-us/library/bb736299.aspx)</span>, introduced in Vista SP1 and Windows Server 2008, can be a better alternative, unless system DEP policy is AlwaysOn.</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Rebuild the application without the /NXCOMPAT switch, or use a tool such as <a href="http://msdn2.microsoft.com/en-us/library/xd3shwhf.aspx">EditBin</a><span class="pLink"> (http://msdn2.microsoft.com/en-us/library/xd3shwhf.aspx)</span> to remove the /NXCOMPAT attribute. Note that system DEP policy can override, and having DEP AlwaysOn will disable ATL thunk emulation, regardless of the attribute. It would also not be advisable to use EditBin on the Visual Studio IDE.</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">If you must continue to use ATL 7.1, modify your ATL headers to use executable data allocations for their thunks, and rebuild the components.  Note that modifying the ATL code in this way will not be supported by Microsoft, and you do so at your own risk.  This is not recommended, but there are known cases where this appears to have been successful.</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Disable DEP on the machine or for the process.  This is not recommended.</td>
</tr>
</table>
<p class="topOfPage"><a href="http://kbalertz.com/948468/Applications-Using-Older-Components-Experience-Conflicts.aspx#top"><br />
</a></p>
<h2 class="subTitle" id="tocHeadRef">More Information</h2>
<p class="sbody"><strong><strong>Background of the ATL Thunk<br />
</strong></strong>ATL was designed to be lightweight and efficient. This thunking code is used in CWindowImplRoot, CContainedWindowT, and any class that inherits from them.  ATL subclasses windows it creates to provide some custom behaviors. But since there is no notion of “this” pointer (the pointer to the current instance of a class object) associated with window handles (HWND), ATL needs some kind of mechanism to translate from HWND to “this” pointer.  Being very efficient, instead of having a separate look up table for HWND -&gt; “this” pointers, ATL inserts executable code into data blocks allocated at runtime to inject a &#8220;this&#8221; pointer not known until runtime.  (See the ATL source in {your VS Install Directory}\VC\atlmfc\include\atlstdthunk.h and {your VS Install Directory}\VC\atlmfc\src\atl\atls\amd64\atlthunk.cpp).</p>
<p>In ATL 8.0 and newer, the allocated memory is marked executable, such as by using the PAGE_EXECUTE_READWRITE parameter when calling VirtualAlloc. This code is going to be changed in a future ATL release (so that pages aren’t both writeable and executable at the same time) and we’d like developers to use that when it becomes available.</p>
<h2 class="subTitle" id="tocHeadRef">DISCLAIMER</h2>
<p class="sbody">MICROSOFT AND/OR ITS SUPPLIERS MAKE NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY, RELIABILITY OR ACCURACY OF THE INFORMATION CONTAINED IN THE DOCUMENTS AND RELATED GRAPHICS PUBLISHED ON THIS WEBSITE (THE “MATERIALS”) FOR ANY PURPOSE. THE MATERIALS MAY INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS AND MAY BE REVISED AT ANY TIME WITHOUT NOTICE.</p>
<p>TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, MICROSOFT AND/OR ITS SUPPLIERS DISCLAIM AND EXCLUDE ALL REPRESENTATIONS, WARRANTIES, AND CONDITIONS WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO REPRESENTATIONS, WARRANTIES, OR CONDITIONS OF TITLE, NON INFRINGEMENT, SATISFACTORY CONDITION OR QUALITY, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT TO THE MATERIALS.</p>
<p class="topOfPage"><a href="http://kbalertz.com/948468/Applications-Using-Older-Components-Experience-Conflicts.aspx#top"><br />
</a></p>
<p class="appliesTo">&nbsp;</p>
<hr />
<h5>APPLIES TO</h5>
<table class="list">
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual C++ 2005 Express Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual C++ 2008 Express Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2005 Express Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2005 Professional Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2005 Standard Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2005 Team Suite</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2008 Academic Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2008 Professional Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2008 Standard Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2008 Team Suite</td>
</tr>
</table>
<p class="appliesTo">      <meta http-equiv="content-type" content="text/html;charset=UTF-8" /><title></title><br />
<style type="text/css">       </style>
</p>
<p dir="ltr">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p dir="ltr">Microsoft Knowledge Base Article</p>
<p dir="ltr">This article contents is Microsoft Copyrighted material.<br />
Microsoft Corporation. All rights reserved. <a href="http://support.microsoft.com/tou/">Terms of Use</a> | <a href="http://support.microsoft.com/library/toolbar/3.0/trademarks/en-us.mspx">Trademarks</a></p>
<p dir="ltr">&nbsp;</p>
<p></span></p>
<div class="aizatto_related_posts"><span class="aizatto_related_posts_header" >Related Articles or Pages</span><ul></ul></div>]]></content:encoded>
			<wfw:commentRss>http://ossmall.info/applications-using-older-atl-components-may-experience-conflicts-with-dep/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Error C2039: &#8216;GetAsDBTIMESTAMP&#8217; : is not a member of ATL::COleDateTime</title>
		<link>http://ossmall.info/error-c2039-getasdbtimestamp-is-not-a-member-of-atlcoledatetime/</link>
		<comments>http://ossmall.info/error-c2039-getasdbtimestamp-is-not-a-member-of-atlcoledatetime/#comments</comments>
		<pubDate>Mon, 11 May 2009 12:57:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Fixes]]></category>

		<guid isPermaLink="false">http://ossmall.info/error-c2039-getasdbtimestamp-is-not-a-member-of-atlcoledatetime/</guid>
		<description><![CDATA[
Action
1. Open Visual Studio 2005 or 2008 and create default MFC Single Document application.
2. Add the following code in the OnDraw() method of the wizard-generated custom view class:
COleDateTime t = COleDateTime::GetCurrentTime();
DBTIMESTAMP ts;
t.GetAsDBTIMESTAMP( ts ); // retrieves the time in t into the ts structure
3. Now compile the project.


Result
You receive the following error:
&#8220;testoleview.cpp(59) : error C2039: &#8216;GetAsDBTIMESTAMP&#8217; [...]]]></description>
			<content:encoded><![CDATA[<p class="section">
<h2 class="subTitle" id="tocHeadRef">Action</h2>
<p class="sbody">1. Open Visual Studio 2005 or 2008 and create default MFC Single Document application.<br />
2. Add the following code in the OnDraw() method of the wizard-generated custom view class:<br />
COleDateTime t = COleDateTime::GetCurrentTime();<br />
DBTIMESTAMP ts;<br />
t.GetAsDBTIMESTAMP( ts ); // retrieves the time in t into the ts structure<br />
3. Now compile the project.</p>
<p class="topOfPage"><a href="http://kbalertz.com/948938/Error-member.aspx#top"><br />
</a></p>
<h2 class="subTitle" id="tocHeadRef">Result</h2>
<p class="sbody">You receive the following error:<br />
&#8220;testoleview.cpp(59) : error C2039: &#8216;GetAsDBTIMESTAMP&#8217; : is not a member of &#8216;ATL::COleDateTime&#8217;<br />
C:\Program Files (x86)\Microsoft Visual Studio 8\VC\atlmfc\include\atlcomtime.h(104) : see declaration of<br />
&#8216;ATL::COleDateTime&#8217;&#8221;<br />
[Even including the required header files in the View class does not resolve the error:<br />
#include &lt;oledb.h&gt;<br />
#include &lt;ATLComTime.h&gt;]</p>
<p class="topOfPage"><a href="http://kbalertz.com/948938/Error-member.aspx#top"><br />
</a></p>
<h2 class="subTitle" id="tocHeadRef">Cause</h2>
<p class="sbody">Only ATLComTime.h was included indirectly from #include &lt;afxdisp.h&gt;, which was added in stdafx.h by the wizard while generating the default code for the project.  But for GetAsDBTIMESTAMP to be compiled as part of COleDateTime, __oledb_h__ must have been defined previously. Even if Database support was selected in the wizard during project generation, afxoledb.h is added to stdafx.h, but it is added <strong>after</strong> afxdisp.h, which is too late.</p>
<p class="topOfPage"><a href="http://kbalertz.com/948938/Error-member.aspx#top"><br />
</a></p>
<h2 class="subTitle" id="tocHeadRef">Resolution</h2>
<p class="sbody">
<p>Move the #include &lt;afxoledb.h&gt; above the #include &lt;afxdisp.h&gt; in the precompilation header file, stdafx.h.</p>
<p class="topOfPage"><a href="http://kbalertz.com/948938/Error-member.aspx#top"><br />
</a></p>
<h2 class="subTitle" id="tocHeadRef">More Information</h2>
<p class="sbody">This bug has been reported, and may be fixed in a later Service Pack.</p>
<p class="topOfPage"><a href="http://kbalertz.com/948938/Error-member.aspx#top"><br />
</a></p>
<h2 class="subTitle" id="tocHeadRef">DISCLAIMER</h2>
<p class="sbody">MICROSOFT AND/OR ITS SUPPLIERS MAKE NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY, RELIABILITY OR ACCURACY OF THE INFORMATION CONTAINED IN THE DOCUMENTS AND RELATED GRAPHICS PUBLISHED ON THIS WEBSITE (THE “MATERIALS”) FOR ANY PURPOSE. THE MATERIALS MAY INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS AND MAY BE REVISED AT ANY TIME WITHOUT NOTICE.</p>
<p>TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, MICROSOFT AND/OR ITS SUPPLIERS DISCLAIM AND EXCLUDE ALL REPRESENTATIONS, WARRANTIES, AND CONDITIONS WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO REPRESENTATIONS, WARRANTIES, OR CONDITIONS OF TITLE, NON INFRINGEMENT, SATISFACTORY CONDITION OR QUALITY, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT TO THE MATERIALS.</p>
<p class="topOfPage"><a href="http://kbalertz.com/948938/Error-member.aspx#top"><br />
</a></p>
<hr />
<h5>APPLIES TO</h5>
<table class="list">
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2005 Express Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2005 Professional Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2005 Service Pack 1</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2005 Standard Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2005 Team Suite</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2008 Academic Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2008 Professional Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2008 Standard Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio Team System 2008 Team Suite</td>
</tr>
</table>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<h5>Microsoft Knowledge Base Article</h5>
<p class="MsoNormal">This article contents is Microsoft Copyrighted material.<br />
Microsoft Corporation. All rights reserved. <a href="http://support.microsoft.com/tou/">Terms of Use</a> | <a href="http://support.microsoft.com/library/toolbar/3.0/trademarks/en-us.mspx">Trademarks</a></p>
<p><o:p> </o:p></p>
<div class="aizatto_related_posts"><span class="aizatto_related_posts_header" >Related Articles or Pages</span><ul></ul></div>]]></content:encoded>
			<wfw:commentRss>http://ossmall.info/error-c2039-getasdbtimestamp-is-not-a-member-of-atlcoledatetime/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Error message when you pass a lambda expression to a late-bound method call that is nested inside another late-bound method call in Visual Basic 2008: &#8220;Expression does not produce a value&#8221;</title>
		<link>http://ossmall.info/error-message-when-you-pass-a-lambda-expression-to-a-late-bound-method-call-that-is-nested-inside-another-late-bound-method-call-in-visual-basic-2008-expression-does-not-produce-a-value/</link>
		<comments>http://ossmall.info/error-message-when-you-pass-a-lambda-expression-to-a-late-bound-method-call-that-is-nested-inside-another-late-bound-method-call-in-visual-basic-2008-expression-does-not-produce-a-value/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 09:04:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Fixes]]></category>

		<guid isPermaLink="false">http://ossmall.info/error-message-when-you-pass-a-lambda-expression-to-a-late-bound-method-call-that-is-nested-inside-another-late-bound-method-call-in-visual-basic-2008-expression-does-not-produce-a-value/</guid>
		<description><![CDATA[Consider the following scenario. In Microsoft Visual Basic 2008, you pass a lambda expression as a parameter to a late-bound method call. The late-bound method call is nested inside another late-bound method call. In this scenario, you receive the following error message:
Expression does not produce a value
RESOLUTION
To resolve this problem, use one of the following [...]]]></description>
			<content:encoded><![CDATA[<p>Consider the following scenario. In Microsoft Visual Basic 2008, you pass a lambda expression as a parameter to a late-bound method call. The late-bound method call is nested inside another late-bound method call. In this scenario, you receive the following error message:</p>
<p>Expression does not produce a value</p>
<h2>RESOLUTION</h2>
<p>To resolve this problem, use one of the following methods.</p>
<h3>Method 1</h3>
<p>Make the first method call an early bound method call by specifying the type for the first object.</p>
<h3>Method 2</h3>
<p>Assign the lambda expression to a separate variable before you pass the lambda expression to the late-bound method call.</p>
<p>For example, the following code causes the error message that is mentioned in the &#8220;Symptoms&#8221; section.</p>
<pre>Dim variable1, variable2 As Object</pre>
<pre></pre>
<pre>variable1.LateBoundCall(variable2.LateBoundCall(Function(a As Integer) a))</pre>
<p>To resolve this problem, change this code as follows.</p>
<pre>Dim variable1, variable2 As Object</pre>
<pre></pre>
<pre>Dim delegateName As Func(Of Integer, Integer) = Function(a As Integer) a</pre>
<pre>variable1.LateBoundCall(variable2.LateBoundCall(delegateName))</pre>
<h2>MORE INFORMATION</h2>
<h3 id="tocHeadRef">Steps to reproduce the problem</h3>
<table border="0" cellpadding="0">
<tr>
<td>1.</td>
<td>In Microsoft Visual Studio 2008, click <strong>New</strong>,   and then click <strong>Project</strong>.</td>
</tr>
<tr>
<td>2.</td>
<td>Click <strong>Visual Basic</strong>, click <strong>Console   Application</strong>, type ConsoleApplication1   in the <strong>Name</strong> box, and then click <strong>OK</strong>.</td>
</tr>
<tr>
<td>3.</td>
<td>In <strong>Solution Explorer</strong>, right-click <strong>ConsoleApplication1</strong>,   click <strong>Add</strong>, and then click <strong>New Item</strong>.</td>
</tr>
<tr>
<td>4.</td>
<td>Click <strong>Class</strong>, type SampleClass.vb   in the <strong>Name</strong> box, and then click <strong>OK</strong>.</td>
</tr>
<tr>
<td>5.</td>
<td>In the SampleClass.vb file, replace the existing code by   using the following code.</p>
<pre>Public Class SampleClass</pre>
<pre>        Sub LateBoundCall(ByVal x As Object)</pre>
<pre>        End Sub</pre>
<pre>End Class</pre>
</td>
</tr>
<tr>
<td>6.</td>
<td>In the Module1.vb file, add the following code to the <strong>Sub   Main</strong> procedure.</p>
<pre>Dim variable1, variable2 As Object</pre>
<pre></pre>
<pre>variable1.LateBoundCall(variable2.LateBoundCall(Function(a As Integer) a))</pre>
</td>
</tr>
</table>
<hr align="center" size="2" width="100%" />
<h5>APPLIES TO</h5>
<table border="0" cellpadding="0">
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual Studio 2008 Standard Edition</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual Studio 2008 Professional Edition</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual Studio 2008 Academic Edition</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual Web Developer 2008 Express Edition</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Microsoft Visual Basic 2008 Express Edition</td>
</tr>
</table>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<h5>Microsoft Knowledge Base Article</h5>
<p>This article contents is Microsoft Copyrighted material.<br />
Microsoft Corporation. All rights reserved. <a href="http://support.microsoft.com/tou/">Terms of Use</a> | <a href="http://support.microsoft.com/library/toolbar/3.0/trademarks/en-us.mspx">Trademarks</a></p>
<div class="aizatto_related_posts"><span class="aizatto_related_posts_header" >Related Articles or Pages</span><ul></ul></div>]]></content:encoded>
			<wfw:commentRss>http://ossmall.info/error-message-when-you-pass-a-lambda-expression-to-a-late-bound-method-call-that-is-nested-inside-another-late-bound-method-call-in-visual-basic-2008-expression-does-not-produce-a-value/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FIX: Visual Studio 2008 performance decreases when you step through source code that you downloaded from Reference Source Server</title>
		<link>http://ossmall.info/fix-visual-studio-2008-performance-decreases-when-you-step-through-source-code-that-you-downloaded-from-reference-source-server/</link>
		<comments>http://ossmall.info/fix-visual-studio-2008-performance-decreases-when-you-step-through-source-code-that-you-downloaded-from-reference-source-server/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 17:58:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Fixes]]></category>

		<guid isPermaLink="false">http://ossmall.info/fix-visual-studio-2008-performance-decreases-when-you-step-through-source-code-that-you-downloaded-from-reference-source-server/</guid>
		<description><![CDATA[
&#160;
In Microsoft Visual Studio 2008, when you step through the source code that you downloaded from Microsoft Reference Source Server, Visual Studio 2008 performance decreases.


CAUSE
This problem occurs because the source files are downloaded again every time that the debugger hits a breakpoint in the code.


RESOLUTION
&#160;
Hotfix information
A supported hotfix is now available from Microsoft. But the [...]]]></description>
			<content:encoded><![CDATA[<p><span id="ctl00_ContentPlaceHolder1_MicrosoftKBArticle"></p>
<p class="section">&nbsp;</p>
<p class="sbody">In Microsoft Visual Studio 2008, when you step through the source code that you downloaded from Microsoft Reference Source Server, Visual Studio 2008 performance decreases.</p>
<p class="topOfPage"><a href="http://kbalertz.com/944899/Visual-Studio-performance-decreases-through-source-downloaded-Reference-Source-Server.aspx#top"><br />
</a></p>
<h2 class="subTitle" id="tocHeadRef">CAUSE</h2>
<p class="sbody">This problem occurs because the source files are downloaded again every time that the debugger hits a breakpoint in the code.</p>
<p class="topOfPage"><a href="http://kbalertz.com/944899/Visual-Studio-performance-decreases-through-source-downloaded-Reference-Source-Server.aspx#top"><br />
</a></p>
<h2 class="subTitle" id="tocHeadRef">RESOLUTION</h2>
<p class="sbody">&nbsp;</p>
<h3 id="tocHeadRef">Hotfix information</h3>
<p>A supported hotfix is now available from Microsoft. But the hotfix is intended only to correct the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem. This hotfix may receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next Visual Studio 2008 service pack that contains this hotfix. To resolve this problem immediately, visit the following Microsoft Web site:</p>
<p class="indent"><span class="ll"><a href="https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=10443&amp;amp;amp;amp;wa=wsignin1.0">https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=10443&amp;amp;amp;amp;wa=wsignin1.0</a></span><span class="pLink"> (https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=10443&amp;amp;amp;amp;wa=wsignin1.0)</span></p>
<p>Additionally, this hotfix prevents an unnecessary <strong class="uiterm">Microsoft Software License Terms</strong> dialog box that appears repeatedly when you start the debugger. You can apply this hotfix on 32-bit and 64-bit operating systems. If you apply this hotfix on a 64-bit version of Windows Vista or on later versions of Windows Vista, you create an empty Symsrv.yes text file. Save this file in the folder that contains the Symsrv.dll file. Typically, the Symsrv.dll file is located one of the following folders:</p>
<table class="list ul">
<tr>
<td class="bullet">•</td>
<td class="text"><var>InstallationDrive</var>\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger\x64</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text"><var>InstallationDrive</var>\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger\ia64</td>
</tr>
</table>
<p>However, if 32-bit or 64-bit debugging components are copied to a remote computer, you must copy the Symsrv.yes file to the same folder that contains the debugging components. In this scenario, you do not have to apply the hotfix on the remote computer.</p>
<h4 id="tocHeadRef">Prerequisites</h4>
<p>You must have Visual Studio 2008  installed to apply this hotfix.</p>
<h4 id="tocHeadRef">Restart requirement</h4>
<p>You do not have to restart the computer after you apply this hotfix.</p>
<h4 id="tocHeadRef">Hotfix replacement information</h4>
<p>This hotfix does not replace any other hotfixes.</p>
<h4 id="tocHeadRef">File information</h4>
<p>The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the <strong class="uiterm">Time Zone</strong> tab in the <strong class="uiterm">Date and Time</strong> item in Control Panel.</p>
<table class="table" cellspacing="1">
<tr>
<th>File name</th>
<th>File version</th>
<th>File size</th>
<th>Date</th>
<th>Time</th>
<th>File Path</th>
</tr>
<tr>
<td>vsdebug.dll</td>
<td>9.0.21022.39</td>
<td>1,513kb</td>
<td>07-Jan-2008</td>
<td>10:57</td>
<td>..\Program  Files\Microsoft Visual Studio 9.0\Common7\Package\Debugger\</td>
</tr>
<tr>
<td>symsrv.yes</td>
<td>9.0.21022.39</td>
<td>1kb</td>
<td>13-Dec-2007</td>
<td>02:33</td>
<td>..\Program  Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger\x86\</td>
</tr>
<tr>
<td>symsrv.yes</td>
<td>9.0.21022.39</td>
<td>1kb</td>
<td>13-Dec-2007</td>
<td>02:33</td>
<td>..\Program  Files\Microsoft Visual Studio 9.0\Common7\x86\</td>
</tr>
</table>
<p class="topOfPage"><a href="http://kbalertz.com/944899/Visual-Studio-performance-decreases-through-source-downloaded-Reference-Source-Server.aspx#top"><br />
</a></p>
<h2 class="subTitle" id="tocHeadRef">STATUS</h2>
<p class="sbody">Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the &#8220;Applies to&#8221; section.</p>
<p class="topOfPage"><a href="http://kbalertz.com/944899/Visual-Studio-performance-decreases-through-source-downloaded-Reference-Source-Server.aspx#top"><br />
</a></p>
<h2 class="subTitle" id="tocHeadRef">MORE INFORMATION</h2>
<p class="sbody">For more information about the integrated Visual Studio 2008 debugging support, visit the following Microsoft Web site:</p>
<p class="indent"><span class="ll"><a href="http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx">http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx</a></span><span class="pLink"> (http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx)</span></p>
<p class="appliesTo">&nbsp;</p>
<hr />
<h5>APPLIES TO</h5>
<table class="list">
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2008 Professional Edition</td>
</tr>
<tr>
<td class="bullet">•</td>
<td class="text">Microsoft Visual Studio 2008 Standard Edition</td>
</tr>
</table>
<p class="appliesTo">      <meta http-equiv="content-type" content="text/html;charset=UTF-8" /><title></title><br />
<style type="text/css">       </style>
</p>
<p dir="ltr">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p dir="ltr">Microsoft Knowledge Base Article</p>
<p dir="ltr">This article contents is Microsoft Copyrighted material.<br />
Microsoft Corporation. All rights reserved. <a href="http://support.microsoft.com/tou/">Terms of Use</a> | <a href="http://support.microsoft.com/library/toolbar/3.0/trademarks/en-us.mspx">Trademarks</a></p>
<p dir="ltr">&nbsp;</p>
<p></span></p>
<div class="aizatto_related_posts"><span class="aizatto_related_posts_header" >Related Articles or Pages</span><ul></ul></div>]]></content:encoded>
			<wfw:commentRss>http://ossmall.info/fix-visual-studio-2008-performance-decreases-when-you-step-through-source-code-that-you-downloaded-from-reference-source-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You may receive a &#8220;warning LNK4018&#8243; warning message when you link a debug version of your application in Visual C++</title>
		<link>http://ossmall.info/you-may-receive-a-warning-lnk4018-warning-message-when-you-link-a-debug-version-of-your-application-in-visual-c/</link>
		<comments>http://ossmall.info/you-may-receive-a-warning-lnk4018-warning-message-when-you-link-a-debug-version-of-your-application-in-visual-c/#comments</comments>
		<pubDate>Tue, 18 Dec 2007 15:45:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Fixes]]></category>

		<guid isPermaLink="false">http://ossmall.info/you-may-receive-a-warning-lnk4018-warning-message-when-you-link-a-debug-version-of-your-application-in-visual-c/</guid>
		<description><![CDATA[When linking a debug version of your application, you may get the following warning message:
LINK : warning LNK4018: too many type indexes in PDB &#8220;filename&#8221;, discarding subsequent type information
NOTE: You will not be able to see the subsequent types in the debugger.
CAUSE
 loadTOCNode(1, 'cause'); The number of type indexes in the Program Database File (.pdb [...]]]></description>
			<content:encoded><![CDATA[<p>When linking a debug version of your application, you may get the following warning message:</p>
<p>LINK : warning LNK4018: too many type indexes in PDB &#8220;filename&#8221;, discarding subsequent type information</p>
<p><strong>NOTE</strong>: You will not be able to see the subsequent types in the debugger.</p>
<h2>CAUSE</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'cause'); </script>The number of type indexes in the Program Database File (.pdb file) for your project exceeded 64K for Visual C++ 4.x and 16M for later versions. This is a limitation of the debugging format in a .pdb file. The format uses a 16-bit field to store the number of types. This field was increased to 24 bits in Visual C++ 5.0.</p>
<h2>RESOLUTION</h2>
<p><script type="text/javascript"> loadTOCNode(1, 'resolution'); </script>To avoid this warning, use one or more of the following methods to decrease the number of type indexes in your .pdb file:</p>
<table border="0" cellpadding="0">
<tr>
<td>
<ul></ul>
</td>
<td>Compile modules that you do not need to debug, without debugging   information.</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Break your project into multiple Dynamic Link Libraries   (DLLs). You can use subprojects in Developer Studio to build the new   libraries.</td>
</tr>
<tr>
<td>
<ul></ul>
</td>
<td>Use the compile time option <strong>/Yd</strong>. It will cause the   type information for only those symbols that are referenced to be generated.   This slows down builds somewhat but may lower the total number of symbols   below the 64K limit.</td>
</tr>
</table>
<div class="aizatto_related_posts"><span class="aizatto_related_posts_header" >Related Articles or Pages</span><ul></ul></div>]]></content:encoded>
			<wfw:commentRss>http://ossmall.info/you-may-receive-a-warning-lnk4018-warning-message-when-you-link-a-debug-version-of-your-application-in-visual-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
