Applies ToVisual Studio Community 2013

Sümptomid

Kui loote programmi Microsoft Visual C++ 2013 jookseb programm kokku ja kuvatakse erandi "Viga". See juhtub, sest mõned ujukoma math teegi funktsioonide Visual C++ 2013 x64 C käitusaja (CRT) õigesti kontrollida, kas teatud AVX ja FMA3 juhised on saadaval enne kasutada neid funktsioone. Kui juhised pole kasutamiseks saadaval, nõuab neid funktsioone põhjustada erandi Lubamatu juhis (0xc000001d). Mõjutatud funktsioonid hõlmavad log log 10, ja pow ja teised.See probleem tekib kõige tõenäolisemalt ilmneda järgmistel juhtudel:

  • Vana versiooni Windowsi operatsioonisüsteemi, mis ei toeta AVX olekus salvestamine (nt Windows Vista), kui seda kasutatakse arvutis, mis toetab AVX käsustikuga

  • Kui operatsioonisüsteemi boot configuration selgesõnaliselt keelatud AVX oleku salvestamine

  • Windowsi eelinstalli keskkonda (Windows PE)Märkus. Windows PE ei toeta AVX oleku salvestamine.

See probleem on teatatud Microsoft Connect:

x64 log() funktsioon kasutab vpsrlq AVX instruction olenemata operatsioonisüsteemi (nii, et see jookseb Vista x64) Visual Studio 2013 RTM: C++ x64 koodi loomine viga AVX2 juhised

Põhjus

See probleem ilmneb, sest Visual C++ 2013 x64 C Runtime kontrollida, kas operatsioonisüsteem toetab AVX oleku salvestamine enne proovib käivitada AVX või FMA3 juhiseid.

Lahendus

Kui kõik mõjutatud C++ paketi, mis on loodud kasutades Visual C++ 2013 kasutada C käitusaja DLL (msvcr120.dll), installige selle värskendatud Microsoft Visual C++ 2013 taaslevitatav – 12.0.40660.0 või uuem versioon.Kui mõjutatud C++ kahendfaile lingi staatiliselt Visual C++ 2013 C käitusaja, peate värskendama oma installi Visual Studio 2013 3174417 kiirparanduse installimist ja uuesti koostamine ja ümbersuunamine mõjutatud kahendfaile.Märkus. See probleem ei mõjuta vanemad versioonid Visual C++ C käitusaja (Visual C++ 2012 ja varasemad versioonid). See probleem parandati enne algse väljaandega Universal CRT, mis kasutab Visual C++ 2015.

Microsofti allalaadimiskeskus

Staatiliselt lingitud Visual C++ 2013 C käitusaja värskendamiseks 3174417 kiirparanduse ainult allalaadimisega update välja ja ei ole levitatakse Windows Update'i kaudu. See on saadaval Microsoft Download Center veebisaiti:Download Paketi kohene allalaadimine.Värskendamiseks dünaamiliselt lingitud Visual C++ 2013 C käitusaja dll-ID, mis värskendatud versiooni on saadaval. Lisateabe saamiseks lugege järgmist Microsofti teabebaasi (Knowledge Base) artiklit:

3179560 värskendus Visual C++ 2013 ja Visual C++ taaslevitatav pakett

Lahendus

Selle probleemi lahendamiseks keelake FMA3 valemi teegis kui see probleem mõjutab. Te küsite, kas süsteem toetab juhistest helistades GetEnabledXStateFeatures ja keelamine AVX CRT selgesõnaliselt helistades _set_FMA3_enable(0).Lisateabe saamiseks vaadake töötamine XState seosesMSDN-i veebisaidil.Funktsioon _set_FMA3_enable(0) on tunnistatud < math.h > ja see on saadaval ainult siis, kui loote x64. (See probleem mõjutab ainult x64 teegid.) See põhjustab math teegi taastamiseks-FMA3 rakendusi kasutada.

Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.

Kogukonnad aitavad teil küsimusi esitada ja neile vastuseid saada, anda tagasisidet ja saada nõu rikkalike teadmistega asjatundjatelt.