Ievads
Šajā rakstā ir aprakstīts labojumfails novērš šādas problēmas Microsoft Visual Studio 2010.
1. problēma
Novērojat neparedzētas darbības, palaižot lietojumprogrammu, kas ir cilpas pirmkodu. Šī problēma rodas, ja avota kods ir apkopota ar globālo optimizācija (/ Og) iespējots.
2. problēma
Apsveriet šādu situāciju:
-
Jums ir Visual C++ projektā, kas ietver Atlcomcli.h failu.
-
Norādiet/j kompilatora opcijas, lai definētu_CHAR_UNSIGNEDmakro projekts.
-
Jums apkopot projekta.
Šādā gadījumā tiek parādīts kāds no šiem kļūdu ziņojumiem:
-
kļūda C2338: CVarTypeInfo < char > nevar kompilēt ar iespējotu/j vai _CHAR_UNSIGNED karodziņu
-
kļūda C2338: CVarTypeInfo < char * > nevar kompilēt ar iespējotu/j vai _CHAR_UNSIGNED karodziņu
3. problēma
Piekļuves pārkāpums rodas Visual C++ x86 bitu versijas Windows veidotas lietojumprogrammas. Šī problēma rodas, kad lietojumprogramma ir izteiksmes koku, kurā ir divi ievades argumenti masīva tipa.
Iemesls
1 problēmas cēlonis
Šī problēma rodas tāpēc, ka nepareizi cilpa optimizācija tiek veikta. Tas izraisa nepareiza koda ģenerēšana.
2 problēmas cēlonis
Šī problēma rodas tāpēc, ka statisks apgalvojumiem Atlcomcli.h failā nav iestatīti pareizi/j opciju un CHAR_UNSIGNED makro.
3 problēmu cēlonis
Šī problēma rodas, jo argumentu stumšanas instrukcijas tiek sajaukts. Tādēļ nepareizs argumentu nodota virzīt instrukcijas.
Papildinformācija
Informācija par labojumfailu
Pašlaik korporācija Microsoft piedāvā atbalstītu labojumfailu. Tomēr tas ir paredzēts tikai šajā rakstā aprakstītās problēmas novēršanai. Izmantojiet to tikai tām sistēmām, kurām ir radusies tieši šī problēma. Iespējams, tiks veikta šī labojumfaila papildu testēšana. Tādēļ, ja jums ir šī problēma nerada nopietnus traucējumus, ieteicams pagaidīt tālāk Visual Studio 2010, kurā ir iekļauts šis labojumfails.
Lai nekavējoties novērstu šo problēmu, sazinieties ar Microsoft klientu atbalsta pakalpojumu sniedzēju, lai iegūtu labojumfailu. Lai iegūtu pilnīgu sarakstu ar Microsoft klientu atbalsta pakalpojumu sniedzēju tālruņu numuriem un informāciju par atbalsta izmaksām, apmeklējiet šo Microsoft vietni:
http://support.microsoft.com/contactus/?ws=supportPiezīme. Īpašos gadījumos standarta izmaksas par atbalsta zvaniem nav jāsedz, ja Microsoft atbalsta speciālists nosaka, ka šo problēmu novērsīs noteikts atjauninājums. Parasti atbalsta izmaksas tiek piemērotas jautājumiem par papildu atbalstu un problēmām, kas neskar specifisko atjauninājumu apspriešanu.
Priekšnosacījumi
Jābūt instalētai Microsoft Visual Studio 2010, lai lietotu šo labojumfailu.
Restartēšanas nepieciešamība
Nav jārestartē dators pēc šī labojumfaila lietošanas, ja nav attiecīgā fails tiek izmantots.
Informācija par labojumfaila aizstāšanu
Šis labojumfails neaizstāj nevienu citu labojumfailu.
Informācija par failu
Šī labojumfaila versijai angļu valodā ir faila atribūti (vai jaunāki faila atribūti) Šajā tabulā sniegtie. Šo failu datumi un laiki ir norādīti atbilstoši universālajam koordinētajam laikam (UTC). Skatot faila informāciju, tā tiek pārvērsta atbilstoši vietējam laikam. Lai noskaidrotu atšķirību starp UTC un vietējo laiku, izmantojiet
Laika josla
cilnes
Datums un laiks
Vadības paneļa vienumā.
Faila nosaukums |
Faila versija |
Faila lielums |
Datums |
Laiks |
Platformas |
---|---|---|---|---|---|
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 |
Risinājums
1. problēmas risinājums
Lai novērstu šo problēmu, atspējojiet globālā optimizācija. Papildinformāciju par to, kā atspējot globālā optimizācija, noklikšķiniet uz šī raksta numura un lasiet Microsoft zināšanu bāzes rakstu:
216181 labot: nepareizu kodu, kas izveidots ar /Og optimizācija
2. problēmas risinājums
Lai novērstu šo problēmu, izmantojiet šādas pragma direktīvas iekļaut Atlcomcli.h failu.
#pragma push_macro("ATLSTATIC_ASSERT")
#undef ATLSTATIC_ASSERT
#define ATLSTATIC_ASSERT(x,y)
#include <atlcomcli.h>
#undef ATLSTATIC_ASSERT
#pragma pop_macro("ATLSTATIC_ASSERT")