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: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).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.
Lisateabe saamiseks vaadake