0
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VisualStudioでC++言語を利用したWin32アプリケーションを作成する手順

Last updated at Posted at 2022-11-05

[1.]概要

[1-1.]作業目的

「Microsoft Visual Studio」(以下VisualStudio)の「Visual C++ Community」を利用して、Windowsのメッセージボックスを表示するアプリケーションを作成する。
利用する言語はC++として、「新しいプロジェクトの作成」のウィザードの「空プロジェクト」を選択して、プロジェクトを作成する手順とする。

[1-2.]環境・前提条件

本件手順では、以下Windows環境にMicrosoft Visual Studioがインストールされている前提とする。

  • エディション:Microsoft Windows 10 Pro
  • システムの種類:64 ビット オペレーティング システム、x64 ベース プロセッサ
  • バージョン:21H2
  • OSビルド 19044.2006
  • エクスペリエンス:Windows Feature Experience Pack 120.2212.4180.0
  • Microsoft Visual Studio:Microsoft Visual Studio Community 2022 (64 ビット) CurrentVersion 17.3.5

[1-3.]参考ページ

[2.]空プロジェクトの作成

[手順1.]「Visual Studio Community 2022」を起動して、起動メニューで「新しいプロジェクトの作成」を選択する。

[手順2.]次の画面で「空のプロジェクト」を選択して、「次へ」を押す。

[手順3.]「空のプロジェクト」のプロパティを入力する。最後に「作成」を押す。

  • プロジェクト名:Project1
  • 場所:<任意の場所を指定>
  • ソリューション名:Project1
  • 「ソリューションとプロジェクトを同じフォルダに配置する」にチェックは入れない

[手順4.]空プロジェクトが作成されるので、「ファイル」→「終了」を選択してプロジェクトを終了する。

[3.]プロジェクトのプロパティ変更

[3-1.]デバッグモードの設定

[手順1.]フォルダ「<プロジェクトを配置したフォルダ>\Project1」に格納されている「Project1.vcxproj」を選択して実行する。
[手順2.]上段の「構成」の値を「Debug」に変更する。
手順3.上段で「プラットフォーム」の値を「x86」に変更する。

[3-2.]WindowsAPIライブラリの設定

[手順1.]ソリューションエクスプローラーを「Project1」を選択する。
[手順2.]「プロジェクト」→「プロパティ」を選択する。
[手順3.]構成を「すべての構成」、プラットフォームを「すべてのプラットフォーム」を選択する。
[手順4.]「構成プロパティ」→「リンカー」→「システム」→「サブシステム」を選択する。
[手順5.]「サブシステム」を「コンソール (/SUBSYSTEM:CONSOLE)」から「Windows(/SUBSYTEM:WINDOWS)」に変更して、「適用」を押す。

[注意事項]

「サブシステム」で「Windows(/SUBSYTEM:WINDOWS)」が選択されていない場合は、ビルド実行した際に「未解決の外部シンボル」のエラーが出力しビルドに失敗する。

(ビルドに失敗した場合のメッセージ)

ビルドを開始しました...
1>------ ビルド開始: プロジェクト: Project1, 構成: Debug Win32 ------
1>project1.cpp
1>MSVCRTD.lib(exe_main.obj) : error LNK2019: 未解決の外部シンボル _main が関数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) で参照されました
1><プロジェクトを配置したフォルダ>\Project1\Debug\Project1.exe : fatal error LNK1120: 1 件の未解決の外部参照
1>プロジェクト "Project1.vcxproj" のビルドが終了しました -- 失敗。
========== ビルド: 成功 0、失敗 1、最新の状態 0、スキップ 0 ==========

[3-3.]マルチバイト文字セットの設定

[手順1.]「構成プロパティ」→「詳細」→「文字セット」を選択する。
[手順2.]「文字セット」を「マルチバイト文字セットを使用する」に変更して、「適用」を押す。

[注意事項]

「文字セット」で「マルチバイト文字セット」が指定されていない場合は、ソース内に全角文字を使用してビルド実行した際に「文字型の不一致」のエラーが出力しビルドに失敗する。

(ビルドに失敗した場合のメッセージ)

ビルドを開始しました...
1>------ ビルド開始: プロジェクト: Project1, 構成: Debug Win32 ------
1>project1.cpp
1><プロジェクトを配置したフォルダ>\Project1\Project1\project1.cpp(9,56): error C2664: 'int MessageBoxW(HWND,LPCWSTR,LPCWSTR,UINT)': 引数 2 を 'const char [9]' から 'LPCWSTR' へ変換できません。
1><プロジェクトを配置したフォルダ>\Project1\Project1\project1.cpp(9,19): message : 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたはかっこで囲まれた関数スタイル キャストが必要です。
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winuser.h(9161,1): message : 'MessageBoxW' の宣言を確認してください
1>プロジェクト "Project1.vcxproj" のビルドが終了しました -- 失敗。
========== ビルド: 成功 0、失敗 1、最新の状態 0、スキップ 0 ==========

[4.]プロジェクトにソースファイルを追加する

[4-1.]cppファイルの追加

[手順1.]「Project1」→「ソースファイル」を右クリックする。
[手順2.]「追加」→「新しい項目」を選択する
[手順3.]「C++ファイル(.cpp)」を選択する。ファイル名はプロジェクト名と同一とする。

名前:project1.cpp

[手順4.]以下ファイルが追加されたことを確認する。

[手順5.]ファイル」→「終了」を選択して一旦プロジェクトを終了する。確認画面で「上書き保存」を押す。

[4-2.]ソースファイルの書き込み

「project1.cpp」ファイルに以下ソースを追記する。

(追記するソースコード)

#include <windows.h>

// プロトタイプ宣言
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int);

// Windows Main 関数
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){

	MessageBox(NULL, "処理終了", "処理終了", MB_OK);

	return 0;

}

[5.]ビルドの実行

[手順1.]「ビルド」→「Project1のビルド」を選択する。
[手順2.]以下のメッセージが表示されて、ビルドが正常終了したことを確認する。

(ビルドが正常終了したメッセージ)

ビルドを開始しました...
1>------ ビルド開始: プロジェクト: Project1, 構成: Debug Win32 ------
1>project1.cpp
1>Project1.vcxproj -><プロジェクトを配置したフォルダ>\Project1\Debug\Project1.exe
========== ビルド: 1 正常終了、0 失敗、0 更新不要、0 スキップ ==========

[6.]ビルド処理

[手順1.]フォルダ「<プロジェクトを配置したフォルダ>\Project1\Debug」に作成された「Project1.exe」を選択して実行する。
[手順2.]「処理終了」のメッセージが表示されたら、「OK」のボタンを押してアプリケーションを終了する。

以上

0
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?