Prisijunkite prie „Microsoft“
Prisijunkite arba sukurkite paskyrą.
Sveiki,
Pasirinkti kitą paskyrą.
Turite kelias paskyras
Pasirinkite paskyrą, kurią naudodami norite prisijungti.

Požymiai

Kai kuriate programą naudodami Microsoft Visual C ++ 2013, programa sugenda ir gaunate išimtį "Neleistinas nurodymas". Taip nutinka dėl to, kad kai kurie slankiojo matematinės bibliotekos funkcijas Visual C ++ 2013 x64 C vykdymo laiko (CRT) tinkamai netikrinti, ar tam tikrų AVX ir FMA3 instrukcijas galima rasti prieš funkcijos bandysite juos naudoti. Jei instrukcijas galima naudoti, šių funkcijų iškvietimus sukelti išimtis neleistinas nurodymas (0xc000001d). Susijusio funkcijos yra žurnalo, log10, ir pow, ir kt.

Ši problema greičiausiai gali kilti toliau nurodytais atvejais:

  • Seną versiją iš "Windows" operacinę sistemą, kuri nepalaiko AVX valstybė įrašyti (pvz., "Windows Vista") jei ji naudojama kompiuteryje, kuriame palaikoma AVX instrukcijų rinkinį

  • Jei AVX būsenos žiemos išjungtas aiškiai operacinės sistemos įkrovos konfigūraciją

  • Windows Preinstall aplinkos (Windows PE)

    Pastaba. "Windows PE" nepalaiko AVX būsenos žiemos.


Ši problema buvo pranešta "Microsoft Connect":

x64 log() naudoja vpsrlq AVX instrukcija neatsižvelgiant į operacinę sistemą (todėl ji sugenda Vista x64)

Visual Studio 2013 RTM: C++ x64 kodas kartos klaidą AVX2 instrukcijos

Priežastis

Ši problema kyla dėl to, kad Visual C ++ 2013 x64 C Runtime negali patikrinti, ar operacinės sistemos palaiko AVX būsenos įrašymas prieš bando paleisti AVX arba FMA3 nurodymus.

Sprendimas

Jei susijusio C++ dvejetainiai, kurios yra sukurtos naudojant Visual C ++ 2013 naudoja C vykdymo proceso DLL (msvcr120.dll), įdiegti į atnaujintą Microsoft Visual C ++ 2013 perskirstymo – 12.0.40660.0 arba naujesnė versija.

Jei jūsų pažeistą C++ dvejetainiai statiškai nuorodą Visual C ++ 2013 C vykdymas, turite atnaujinti "Visual Studio 2013" įdiegtį 3174417 karštųjų pataisų diegimo ir perkūrimas ir naudojimas susijusio dvejetainiai failai.









Pastaba. Ši problema nedaro įtakos senesnių versijų Visual C ++ C vykdymas (Visual C ++ 2012 ir ankstesnės versijos). Problema buvo išspręsta iki pradinės universalios CRT, kurį naudoja Visual C ++ 2015 išleidimo.

Microsoft Atsisiuntimo centras

Norėdami atnaujinti statiškai susietą Visual C ++ 2013 C vykdymas, 3174417 karštųjų pataisų bus išleistas kaip tik atsisiųsti naujinimą ir ne per "Windows" naujinimo. Jį galima rasti Microsoft Download Center tinklalapyje:

Download Atsisiųskite paketą dabar.

Norėdami atnaujinti dinamiškai susieti Visual C ++ 2013 C vykdyklės DLL, atnaujintą perskirstymo programa yra prieinama. Daugiau informacijos ieškokite šioje "Microsoft" žinių bazės straipsnį:

3179560 naujinimas, skirtas Visual C ++ 2013 "ir" Visual C ++ perskirstomąjį paketą

Sprendimas

Norėdami išspręsti šią problemą, išjunkite FMA3 matematinės bibliotekoje, jei patiriate šią problemą. Jums gali užklausa, ar sistema palaiko AVX instrukcijomis Tel. GetEnabledXStateFeatures ir išjungia AVX, CRT aiškiai paskambinę _set_FMA3_enable(0).

Jei norite gauti daugiau informacijos, žr. darbas su XState kontekstoMSDN svetainėje.

Function _set_FMA3_enable(0) paskelbė < math.h > ir galima tik tada, kai jums sukurti x64. (Ši problema turi įtakos tik x64 bibliotekos.) Dėl matematinės bibliotekos atkurti naudojant ne FMA3 diegimas.

Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.

Bendruomenės padeda užduoti klausimus ir į juos atsakyti, pateikti atsiliepimų ir išgirsti iš ekspertų, turinčių daug žinių.

Ar ši informacija buvo naudinga?

Ar esate patenkinti kalbos kokybe?
Kas turėjo įtakos jūsų įspūdžiams?
Paspaudus mygtuką Pateikti, jūsų atsiliepimai bus naudojami tobulinant „Microsoft“ produktus ir paslaugas. Jūsų IT administratorius galės rinkti šiuos duomenis. Privatumo patvirtinimas.

Dėkojame už jūsų atsiliepimą!

×