meideru blog

meideruが書いているブログです。主に電子工作・プログラミング・ガジェット類などを中心に記事を書いています。

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

      2016/11/07

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

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

プログラミング

 

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

Windows API(Win32API)とは

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

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

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

 

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

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

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

 

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

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

なので、今どきこんな方法で開発している現場はないと思われます。

実際、私がバイトしている会社ではWindows向けのアプリケーションを開発していて、こんな方法では開発していませんw

新しいプログラマのバイトに2日間出勤した感想!
最近、新しいプログラマのバイトを始めたという記事を書きました。 @働いているIT企業のイメージ画像 大学生(3年)ですが、一応、プログラマとしてバイト採用されました!(^^)!一昨日と昨日の2日間出勤しましたので、今日は、今働いている会社の雰囲気な...

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

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

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

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

MFCとは

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

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

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

 

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

因みに、以前、私がバイトしていたセキュリティソフトの企業ではMFCを使ってアプリケーションを開発していました。

大学生がIT系の会社のバイトの初出勤で思ったこと
前に記事に書いた通り、今はIT系の会社でバイトしています。業種はアンチウイルスソフトなどを作成するセキュリティ系の会社です。【関連記事】・大学生だけどプログラマのバイトをやろうと思う ・【朗報】大学生俺氏、IT系の会社でバイトする模様 実は、昨日が初出...

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

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

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

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

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

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

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

Windows APIとWindowsフォームアプリケーションの両方で、ウィンドウを表示するコードを比較してみるのが1番わかりやすいかと思います。

なので、ここに各々のコードを表示してみようと思います。

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

 

以上です!

ノシ

 - プログラミング