Где взять stdafx.h в Visual Studio 2019?
Установил Visual Studio, скачать всё нужное начал работу и увидел что «stdafx» отсутствует. Где его можно найти в общем доступе для скачивания и куда его потом скидывать?
Отслеживать
20.1k 6 6 золотых знаков 37 37 серебряных знаков 81 81 бронзовый знак
задан 6 окт 2019 в 12:56
DrumpiVumpi DrumpiVumpi
21 1 1 золотой знак 1 1 серебряный знак 2 2 бронзовых знака
Вот это прочтите habr.com/ru/company/pvs-studio/blog/227521
6 окт 2019 в 12:58
gbg,спасибо за помощь
6 окт 2019 в 14:50
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
stdafx.h — это стандартное название предварительно скомпилированного заголовочного файла в Visual Studio 2017 и более ранних версиях. Начиная с VS2019, вместо этого используется pch.h. Его не нужно ниоткуда скачивать, в него вписываются часто включаемые в коде заголовочные файлы для ускорения компиляции. Сам файл должен создаваться автоматически при создании проекта; но если его нет, можно добавить его вручную. Содержимое должно выглядеть как-то так:
#pragma once #include //другие директивы include.
Совместно с ним в проекте должен находится pch.cpp, состоящий из единственной строки:
#include "pch.h"
Для использования предварительно скомпилированных заголовков их необходимо включить параметром /Y или через страницу свойств проекта Configuration Properties > C/C++ > Precompiled Headers. После этого в каждом cpp-файле в самом начале (до любых директив препроцессора или строк кода) нужно добавить #include «pch.h» .
Подключение stdafx.h
Здравствуйте! Помогите , пожалуйста, разобраться с проблемой!
Без подключения библиотеки «stdafx.h» просит подключить ее, а после того, как подключу, выдает кучу ошибок насчет cin, cout и endl. Подскажите, в чем проблема и как ее решить?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
#include # include # include # include # include # include "stdafx.h" using std::cout; using::std::cin; using std::endl; class test { int b; int x; int y; int r; int k; int na; char op; char u; public: void cq() { x=1+rand() % 9; op=int((u=(rand() % 4))*1.7)+0x2A; y=(rand() % 3),y*=y,y++; cout "Чему равно выражение: " x op y "=?" endl; cout "Выбрать номер с верным ответом. Выход - Esc" endl; } void ca(); int d(char c); void run(); }; void test::run() { char c; for(;;) { cq(); ca(); for(;;) { c=getch(); if(c == 0x1B) break; if(d(c)) break; } if(c==0x1B) break; } } int test::d(char an) { int ret=1; an-=0x31; if(an na && an >= 0) { if(an == b) cout "yes!" endl; else cout "no!" endl; cout endl; } else ret=0; return ret; } void test::ca() { int i,k=u/3*9+1; x *= k; na=2+rand() % 3; switch(u) { case 0: r=x*y; break; case 1: r=x+y; break; case 2: r=x-y; break; case 3: r=x/y; break; } float* p=new float[na]; b=rand() % na; p[ b ]= r/float(k); for(i=0;i na-1;) p[(++i+b) % na]=r/float(k)+(1-(rand() % 2)*2)*(1+i); for(i=0;i na;i++) cout "Ответ N" i+1 ": " p[ i ] endl; delete [] p; } void main() { rand(); test A; A.run(); }
Использование stdafx.h
Добрый день (вечер). Я учусь на первом курсе. Мы начали изучать Си, а потому нам дали учебник по этому языку, а также сказали скачать Visual Studio 2010. Скачав его и немного на нем поработав, я понял, что запутался. По ряду причин (которые я сейчас назову) я перестал понимать на каком из языков (Си или C++) я пишу.
Первая причина: директива #include . В учебнике по Си именно она используется для объявления стандартных ввода-вывода. Однако в Visual Studio на место неё встает #include «stdafx.h», которая, к слову, и вызывает stdio.h. Но если не использовать #include «stdafx.h», просто написать как в учебнике (#include ), то компилятор начинает ругаться. Например, вот эта программа
1 2 3 4 5 6 7 8 9 10
#include int main() { int a,b,sum; /* Описание трех целых переменных a,b,sum */ printf("\nВведите два целых числа: "); /* Вывод сообщения об ожидаемом вводе */ scanf("%d %d",&a,&b); /* Ввод значений переменных a,b */ um=a+b; /* Оператор присваивания: сложить a и b; результат - в sum */ printf("a+b=%d\n",sum); /* Вывод результата - значения переменной sum */ return 0; }
попросту не работает в VS и работает в онлайн компиляторе Си.
Вторая причина: Большинство операторов и синтаксических конструкций являются командами языка Си, а не C++(например printf() и scanf() вместо cin и cout, а также %d)
По этим и некоторым другим причинам(например, формат файлов .cpp, что указывает на C++) я и запутался языках. Помогите, разъясните.
Ответ на «Где взять stdafx.h в Visual Studio 2019?»
stdafx.h — это стандартное название предварительно скомпилированного заголовочного файла в Visual Studio 2017 и более ранних версиях. Начиная с VS2019, вместо этого используется pch.h. Его не нужно ниоткуда скачивать, в него вписываются часто включаемые в коде заголовочные файлы для ускорения компиляции. Сам файл должен создаваться автоматически при создании проекта; но если его нет, можно добавить его вручную. Содержимое должно выглядеть как-то так:
#pragma once #include //другие директивы include.
Совместно с ним в проекте должен находится pch.cpp, состоящий из единственной строки:
#include "pch.h"
Для использования предварительно скомпилированных заголовков их необходимо включить параметром /Y или через страницу свойств проекта Configuration Properties > C/C++ > Precompiled Headers. После этого в каждом cpp-файле в самом начале (до любых директив препроцессора или строк кода) нужно добавить #include «pch.h» .
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.
Back to top Stack Overflow answers (published from sources in GitHub repository). Copyright (c) 2020, MSDN.WhiteKnight. Content licensed under BSD 3-Clause License.
Generated by DocFX