C PlusPlus 新しいページはコチラ
提供: yonewiki
(→C++からの技術) |
(→VisualStudio2019からstdafx.hは新規プロジェクト作成をしても生成されくなりました。) |
||
57行: | 57行: | ||
− | ==='''VisualStudio2019からstdafx. | + | ==='''VisualStudio2019からstdafx.hは新規プロジェクト作成をしても生成されなくなりました。'''=== |
サンプルプログラムの多くは過去のVisualStudioで作成し、VisualStudioは無料だし、きっとここの記事を読む人も同じ環境になっていると思っている節がありましたが、割かし、意外な変更がなされて、サンプルプログラムが動かなくなることがあるんだなと思いました。stdafx.hはもともとプリコンパイル済みヘッダファイルを纏めて記述しておくためのものだったのですが、Microsoftさんは「自分で作りなさい」っていうスタンスに変わったのかなと思います。以前だと、プロジェクトを作成すると自動でstdafx.hが作られ、main関数のあるファイルの先頭でstdafx.hがインクルードされていました。そして、stdafx.hファイルの中で主要なヘッダファイル(#include <stdio.h>とか<windows.h>とか)がさらにインクルードされていました。インクルードについては[[C ディレクティブ]]の記事を参照していただくとして、<span style = "background:linear-gradient(transparent 50%, #ff9ece 50%); font-weight:bold; ">stdafx.hがあるサンプルプログラムについては#include <cstdio>と書き換えておいてもらえれば、動作します。</span>有名なインクルードである#include <stdio.h>を使った場合でも動作しますが、stdio.hは古いヘッダファイルとなっています。むかしからある書籍のほとんどはstdio.hを読み込むような記述になっていますが、これからは#include <cstdio>を使った方がよいと思います。Windowsデスクトップウィザードというテンプレートを使ってプロジェクトを作成した場合、プリコンパイル済ヘッダファイルを使うという設定にするとpch.hというヘッダファイルが生成され、#include "pch.h"がmain関数のあるファイルの中で呼び出されるような形式になります。pch.hには何も新たにヘッダファイルを読み込む設定がなく、まったくの空のヘッダファイルになっています。自分で記述して作成することになっています。詳しくは、[[Cpp プリコンパイル済ヘッダーファイル]]の記事にも記載したいと思います。 | サンプルプログラムの多くは過去のVisualStudioで作成し、VisualStudioは無料だし、きっとここの記事を読む人も同じ環境になっていると思っている節がありましたが、割かし、意外な変更がなされて、サンプルプログラムが動かなくなることがあるんだなと思いました。stdafx.hはもともとプリコンパイル済みヘッダファイルを纏めて記述しておくためのものだったのですが、Microsoftさんは「自分で作りなさい」っていうスタンスに変わったのかなと思います。以前だと、プロジェクトを作成すると自動でstdafx.hが作られ、main関数のあるファイルの先頭でstdafx.hがインクルードされていました。そして、stdafx.hファイルの中で主要なヘッダファイル(#include <stdio.h>とか<windows.h>とか)がさらにインクルードされていました。インクルードについては[[C ディレクティブ]]の記事を参照していただくとして、<span style = "background:linear-gradient(transparent 50%, #ff9ece 50%); font-weight:bold; ">stdafx.hがあるサンプルプログラムについては#include <cstdio>と書き換えておいてもらえれば、動作します。</span>有名なインクルードである#include <stdio.h>を使った場合でも動作しますが、stdio.hは古いヘッダファイルとなっています。むかしからある書籍のほとんどはstdio.hを読み込むような記述になっていますが、これからは#include <cstdio>を使った方がよいと思います。Windowsデスクトップウィザードというテンプレートを使ってプロジェクトを作成した場合、プリコンパイル済ヘッダファイルを使うという設定にするとpch.hというヘッダファイルが生成され、#include "pch.h"がmain関数のあるファイルの中で呼び出されるような形式になります。pch.hには何も新たにヘッダファイルを読み込む設定がなく、まったくの空のヘッダファイルになっています。自分で記述して作成することになっています。詳しくは、[[Cpp プリコンパイル済ヘッダーファイル]]の記事にも記載したいと思います。 | ||