meideru blog

家電メーカーで働いているmeideruのブログです。主に技術系・ガジェット系の話を書いています。

今更だけど、脱Windows APIしようと思う(;´・ω・)

      2018/11/15

最近、Macに関する記事ばかりで飽きてしまっている読者の方々、朗報ですw

久しぶりにプログラミングのネタに関する記事を書きますよ(*’▽’)

プログラミング

今日はWindowsプログラミングに関する話を書きたいと思います。

Windows API(Win32API)とは

私は今でもWindowsのアプリケーションを作るときは、Windows API(Win32API)使用しています。

例えば、住所録のアプリケーションなどを、これを用いて開発しました。

少し前に勉強のためにWindows API (Win32API)を利用して住所録(電話帳?)っぽいソフトウェアを作っているという話をしました。 とりあえず、一通り完成したのでソースコードをアップしたいと思います!GUIなどGUI(グラフィカルユーザインタフェース)は、以...

 

Windows APIとは、マイクロソフトがWindows自身が持つ機能群をプログラマのために公開したAPIのことです。
これを直接操作すればアプリケーションを作ることが可能です

Windows APIを用いてアプリケーションを開発する方法は、Windows 95の時代からある方法です。

C言語とC++で開発可能です。

ところで、このWindows APIを用いてアプリケーションを作るというやり方は、今では古典的でめんどくさいやり方です(;´∀`)

ちょっとしたウィンドウを表示するだけでも何十行とコードを書かなければならないのです(;´・ω・)

なので、今どきこんな方法で開発している会社は、ほとんど存在しないです。

Windows APIを用いないで開発する方法

Windows APIを用いないでアプリケーションを開発するには以下のような方法があります。

  • MFC
  • Windowsフォームアプリケーション(.NET)

(他にもQtを使ってクロスプラットフォームで開発とかいう方法もありますが、純粋なWindowsプログラミングの意味から外れるので、ここでは紹介しません。)

MFCとは

上で言った通り、Windows APIだと、ちょっとしたウィンドウを表示するのにも何十行もコードを書かなければならないのです。

そこで、Windows APIをラップして(覆い隠して)、もっと簡単にアプリケーションを開発できるようにしたのがMFCというフレームワークです。

言語はC言語とC++で開発可能です。

今でもMFCは少なからず使われています。
しかし、主流なやり方ではありません。
なぜならば、他にもっと良い方法があるからです。

因みに、以前、私がバイトしていたベンチャー起業では、MFCを使ってアプリケーションを開発していました。

最近、プログラマのアルバイトを始めました。 毎日楽しく仕事をさせてもらっていますo(・x・)/今日は、IT系の会社のアルバイトの初出勤で思ったことを書きます。私が働いている企業についてmeideru blogは匿名で運用しているため、働いている会社の名前については...

Windowsフォームアプリケーション(.NET)とは

マイクロソフトはインターネットの技術を取り込むのが遅れたので、率先して開発環境にその技術を取り込むことにしました。
その技術の総称を.NETと呼びます。

アプリケーションの開発方法も根本から作り直しました。
そして生まれたのが、Windowsフォームアプリケーションです。

開発は、C++/CLIとC#で可能です。

これが今、もっともメジャーな開発方法です。

私が今バイトしている会社では、C++/CLIで開発しています。

Windowsフォームアプリケーションを使うと、どれくらい楽になるのか

Windows APIとWindowsフォームアプリケーションのコードを比較してみます。

手っ取り早く、ウィンドウを各手法でウィンドウを表示するコードを比較してみます。

Windows API でウィンドウを表示するためのコード

 

100行前後という長いコードです(;´・ω・)

WinMain関数がエントリーポイントとなっています。

Windows APIだと、メッセージをプロシージャで処理することによって、アプリケーション動いています。

Windowsフォームアプリケーション(C++/CLI)

 

Visual C++です。

これだけです。少なっ!!たった10行程度でウィンドウの表示ができてしまいます。

語弊がないように言っておきますが、正確にはこれだけでは動きません。フォームのヘッダーファイルがないと動きません。

しかし、そのファイルはVisual Studioが自動的に書いてくれて、必要な部分だけ付け加えるだけで良いので、かなり楽です。

Windowsフォームアプリケーション(C#)

 

Visual C#です。

こちらもとても簡単に書けてしまいます。

Windows APIのときに書いたコードが嘘みたいです(*’▽’)

Windowsフォームアプリケーションを勉強しようと思います

今からMFCを勉強するのは論外でしょう。
今ではあまり使われない技術です(;´・ω・)

やはり、Windowsフォームアプリケーションを勉強するのが良いと思われます。

なので、勉強します。

というか、実はもう既に勉強のために2冊本を購入して読み始めていますw

一応、C++/CLIとC#の両方で開発するやり方を勉強しようと思います。

C++/CLIとC#のどちらが良いのか

私の感覚だと、ベテランはC++/CLIで開発、ビギナーはC#で開発というようなイメージです。

C#だとメモリ管理などコンパイラがやってくれて便利な反面、自由な書き方ができなくなってしまいます。

バイト先の上司はベテランプログラマが多いので、ほぼ全員がC++/CLIで開発していますね。

まぁ、両方できるに越したことはないのだと思いますw

 - 技術系