Inleiding
De hotfix die in dit artikel wordt beschreven, corrigeert de volgende problemen in Microsoft Visual Studio 2010.
Probleem 1
Als u een toepassing uitvoert die lussen in de broncode heeft vertoont onverwacht gedrag. Dit probleem treedt op als de code is gecompileerd met de globale optimalisatie (/ Og) ingeschakeld.
Probleem 2
Overweeg het volgende scenario:
-
U hebt een Visual C++-project met het bestand Atlcomcli.h.
-
U de optie /J opgeeft compiler voor het definiëren van de_CHAR_UNSIGNEDmacro in het project.
-
Compileren van het project.
In dit scenario wordt een van de volgende foutberichten weergegeven:
-
Fout C2338: CVarTypeInfo < char > kan niet worden gecompileerd met /J of _CHAR_UNSIGNED vlag ingeschakeld
-
Fout C2338: CVarTypeInfo < char * > kan niet worden gecompileerd met /J of _CHAR_UNSIGNED vlag ingeschakeld
Probleem 3
Er treedt een toegangsfout op wanneer u een Visual C++-toepassing die is gebouwd voor een x86-versie van Windows uitvoert. Dit probleem treedt op wanneer de toepassing heeft een boomstructuur van een expressie die twee type matrix invoerargumenten heeft.
Oorzaak
Probleem 1
Dit probleem treedt op omdat de optimalisatie van een onjuiste lus wordt uitgevoerd. Dit zorgt ervoor dat de onjuiste code genereren.
Probleem 2
Dit probleem treedt op omdat statische verklaringen in het bestand Atlcomcli.h niet juist zijn ingesteld op de optie /J en de macro CHAR_UNSIGNED.
Probleem 3
Dit probleem treedt op omdat de argumenten in push-instructies worden verward. Daarom worden onjuiste argumenten doorgegeven aan een push-instructies.
Meer informatie
Informatie over de hotfix
Een ondersteunde hotfix is nu beschikbaar bij Microsoft. Het is echter bedoeld om alleen het probleem dat wordt beschreven in dit artikel. Pas deze alleen toe op systemen waarop dit specifieke probleem zich voordoet. Deze hotfix moet wellicht extra worden getest. Als u geen ernstige problemen ondervindt, is het daarom raadzaam te wachten op het volgende Visual Studio 2010 waarin deze hotfix is opgenomen.
U lost dit probleem meteen contact op met Microsoft Customer Support Services om de hotfix te verkrijgen. Een volledige lijst met telefoonnummers van Microsoft Customer Support Services en informatie over kosten van ondersteuning vindt u op de volgende Microsoft-website:
http://support.microsoft.com/contactus/?ws=supportOpmerking In speciale gevallen kunnen kosten die normaal aan ondersteuningsoproepen verbonden zijn, worden geannuleerd als een medewerker van Microsoft productondersteuning van mening is dat een specifieke update de oplossing van uw probleem is. De normale ondersteuningskosten blijven gelden voor extra ondersteuningsvragen die niet in aanmerking voor de specifieke update in kwestie komen.
Vereisten
U moet Microsoft Visual Studio 2010 is geïnstalleerd om deze hotfix te kunnen hebben.
Opnieuw opstarten
U beschikt niet over de computer opnieuw opstarten nadat u de hotfix hebt toegepast, als er geen bestand waarin dit probleem optreedt wordt gebruikt.
Informatie over het vervangen van hotfixes
Deze hotfix vervangt geen andere hotfixes.
Bestandsinformatie
De Engelse versie van deze hotfix heeft de bestandskenmerken (of recentere bestandskenmerken) die in de volgende tabel worden weergegeven. De datums en tijden voor deze bestanden worden weergegeven in Coordinated Universal Time (UTC). Wanneer u de bestandsinformatie weergeeft, wordt deze naar lokale tijd geconverteerd. Om het verschil tussen UTC en lokale tijd te vinden, gebruik de
Tijdzone
tabblad de
Datum en tijd
een item in het Configuratiescherm.
Bestandsnaam |
Bestandsversie |
Bestandsgrootte |
Datum |
Tijd |
Platform |
---|---|---|---|---|---|
C2.dll |
16.0.30319.314 |
2,510,144 |
30-May-2010 |
20:48 |
x86 |
C2.dll |
16.0.30319.314 |
2,588,480 |
30-May-2010 |
20:48 |
x86 |
C2.dll |
16.0.30319.314 |
2,630,976 |
30-May-2010 |
20:48 |
x86 |
C2.dll |
16.0.30319.314 |
2,977,600 |
30-May-2010 |
20:48 |
x64 |
C2.dll |
16.0.30319.314 |
7,351,616 |
30-May-2010 |
20:48 |
IA-64 |
Tijdelijke oplossing
Oplossing voor probleem 1
Om dit probleem te omzeilen, door de globale optimalisatie uit te schakelen. Voor meer informatie over het uitschakelen van de globale optimalisatie, klikt u op het volgende artikel in de Microsoft Knowledge Base:
216181 FIX: onjuiste Code gegenereerd met /Og optimalisatie
Oplossing voor probleem 2
Om dit probleem te omzeilen, gebruikt u de volgende pragma-instructie naar het bestand Atlcomcli.h.
#pragma push_macro("ATLSTATIC_ASSERT")
#undef ATLSTATIC_ASSERT
#define ATLSTATIC_ASSERT(x,y)
#include <atlcomcli.h>
#undef ATLSTATIC_ASSERT
#pragma pop_macro("ATLSTATIC_ASSERT")