Перейти к содержимому

Stdafx h как подключить

  • автор:

Где взять 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *