Windows 新しいページはコチラ
提供: yonewiki
(→Win32/Win64) |
(→MSVC Runtimeリファレンス) |
||
3行: | 3行: | ||
== '''概要''' == | == '''概要''' == | ||
− | + | Windowsアプリケーションの開発は、複雑!この一言に尽きる。頭の良い人なら、そうは感じないかもしれませんが、世界の80%を占める凡人と呼ばれる我々には敷居の高いものです。ただ、凡人でもコツコツとした努力を積み重ねれば目指すべきところへ辿り着ける。それがプログラム。人間にコンピュータを操れないなんてことはない。なぜなら人間が作ったものだから。とはいえ、その科学技術の結晶のような現在のWindowsにはとんでもない複雑さを持ち合わせています。一般人には手が付けられない範囲もあると思います。そんな中で提供されているWin API を通して、あるいは誰かが作ってくれたOpenソースライブラリをとおして高度なアプリケーション開発へと挑むことは可能です。 | |
− | + | 個人でDAWソフトウェアを作るとか、DTPソフトウェア、Officeアプリ、ほぼ不可能と考えておいた方がよいと思います。もっと狭い領域でもっと少ない機能で便利なものを作ることくらいに焦点を合わせると楽しいと思います。自分流の日記帳やテキストエディタくらいなら作れるとは思います。それでも文字列体系に関するかなりの知識を理解しなければならないしテキストエディタ描画領域のカーソル管理、文字表示、スクロール、と基本的な部分も相当に複雑さを持ち合わせています。DTPアプリでいうとBMPファイルの扱いなら簡単ですが、それ以外の画像ファイルの扱いはとんでもなく複雑になってきます。JPEGを理解するだけでも大学の6単位くらいの学習が必要だと思います。 | |
− | + | VisualStudioというMicrosoftが提供している開発環境を使うのが一番オーソドックスな開発手法ですが、その中で提供されているMFC(MicrosoftFoundationClass)というクラスを使うと開発ははかどりますが、MFCの枠組みにとらわれすぎる制約がついてまわるため、Windowsアプリ開発の基礎を学ぶことができない部分ができたりします。何が一番、よい方法なのかは、意見がわかれます。MFCを利用するには高額なライセンス料金を支払う必要もあり、大学での研究や講義では使用を避けられる傾向にあり、大学の学術的な情報発信においては、MFCはあまり利用されていない資料も多いです。その一方でタイプライブラリと呼ばれるものや分散オブジェクトの手法としてCOMやDCOMやCOM+というもの、あるいはOLEのような技術を利用してMicrosoftが提供してきたソフトウェアと連携をとる技術も幅広く使われています。 | |
− | + | 他にも、有識者によって作られた開発を大幅に楽にしてくれる巨大ライブラリが開発されていて、そのライブラリの使い方の複雑さを理解することもすすめられています。たとえば、画像処理ライブラリとしてOpenCVやOpenCLがあったり、マイクロソフトがゲーム開発に必要となるサウンドや画像処理、2D、3D処理を支援するDirectXというライブラリなんかが有名です。ただしこれらのライブラリ事態は便利なものですが、これを理解することもまた複雑です。どんどんあたらしいライブラリが増えるということは、ありがたいことである一方で、だれかが勝手に決めた使用を覚えなければならないということも増えていく。世の中の標準といわれるほどのライブラリは使いこなせて当たり前という具合にプログラム業界は流動的に反応します。そして、開発言語の選択事態もライブラリの充実度や理解のしやすさによって、複雑に分岐していっていますがC++言語が最強に複雑かつ、動作設定を柔軟に定義できる言語で、プログラム実行速度を向上できる要素を含んでいる言語で、C++は開発速度を重視しない現場では多く利用されていて、膨大な実績が残っている言語だと感じています。その一方でC++は複雑すぎて、逃げ出したいと考えている人たちが多いというふうにも感じています。 | |
− | + | AndroidではJava、iOSはObjective-CからSwiftへの移行。WindowsにおいてもjavaやC#言語あるいは.netFrameworkによるC++/CLIという具合の言語が生まれている理由なんだと思います。言語離れのために言語を作り、より複雑なプログラム言語の分岐を呼ぶという更なる複雑化が起こっているという風にも感じます。そして、新しい風を巻き起こそうとするプログラム言語も続々と生まれています。 | |
− | + | ここではC++言語でWindowsアプリケーションを開発する手法を紹介しながらWindowsの仕組みが理解でいるような文章を書いていきたいと思います。 | |
=== '''Win32/Win64''' === | === '''Win32/Win64''' === | ||
− | + | Micorosoftが提供しているVisualStudio Expressなどで提供されているWindows開発ライブラリを使ってアプリケーションを作成する場合は、まず、VisualStudioを入手してください。現在はVisualStudioBlendというデザイナー向けの統合開発環境IDEも提供されています。これはVisualStudio2015 Proに付属するアプリになっています。インストールしていみるとVisualStudio2015はVisualStudio2015 Comunityというタイトルで起動されます。そしてC#での開発を優先していて、インストールした直後の状態ですぐにC#言語で各種開発ができるようになっています。C++言語での開発を始めるにはToolキットをダウンロードして追加インストールをしなければならない構造になっています。 | |
+ | |||
+ | |||
+ | :字下げされた行 | ||
+ | === '''MSVC Runtimeリファレンス''' === | ||
+ | 関連リンク | ||
+ | *[[C PlusPlus#C++からの技術|C++リファレンス]] | ||
+ | *[[Qt#Qtリファレンス|Qtリファレンス]] | ||
+ | |||
+ | |||
+ | 管理人が書きたいと思ったものから書き始めていきます。C/C++の基本中の基本の関数は出てこないと思います。工科系高校・短大(ハードウェア計算機系)・大学(自然の理解)程度の学校では習わなかったな?って思うものです。 | ||
+ | |||
+ | *[[MSVCRT std::vector]] | ||
+ | *[[MSVCRT std::for_each]] | ||
+ | *[[MSVCRT CommandLineToArgvW]] | ||
+ | *[[MSVCRT GetCommandLineW]] | ||
+ | |||