teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

update

2016/12/14 03:39

投稿

yohhoy
yohhoy

スコア6191

answer CHANGED
@@ -17,6 +17,8 @@
17
17
 
18
18
  WinAPIの使い方は、C言語とC++言語で全く同じです。WinAPIはC言語向けの関数として提供されますが、C++言語からはCの関数をそのまま呼び出せます(C++プログラムからC言語ライブラリの`printf`関数を呼びだせるのと同じ)。
19
19
 
20
+ 補足:DirectXなどCOMベースのAPIでは、C言語よりもC++言語からの方が扱いやすいことはあります。ただ、一般にWinAPIというときはレガシーなC言語インターフェイスの範囲内を指すと思われますので、C/C++での差異は無いと説明しています。
21
+
20
22
  (厳密にはリンク時の名前マングリング規約などの留意点があるのですが、WinAPI提供ヘッダファイル内で考慮されているのでここでは無視します)
21
23
 
22
24
  > さらにAPIとC言語とで型名がちがうらしいのですが、どの型がどれに相当しているのかということや、

3

fix

2016/12/14 03:39

投稿

yohhoy
yohhoy

スコア6191

answer CHANGED
@@ -15,7 +15,7 @@
15
15
 
16
16
  > C言語を標準C++で置き換えた場合にwindowsAPIの使われ方がどう違うのか分かっていません。
17
17
 
18
- WinAPIの使い方は、C言語とC++言語で全く同じです。WinAPIはC言語向けの関数として提供されますが、C++からはC++言語の関数をそのまま呼び出せます(C++プログラムからC言語ライブラリの`printf`関数を呼びだせるのと同じ)。
18
+ WinAPIの使い方は、C言語とC++言語で全く同じです。WinAPIはC言語向けの関数として提供されますが、C++言語からはCの関数をそのまま呼び出せます(C++プログラムからC言語ライブラリの`printf`関数を呼びだせるのと同じ)。
19
19
 
20
20
  (厳密にはリンク時の名前マングリング規約などの留意点があるのですが、WinAPI提供ヘッダファイル内で考慮されているのでここでは無視します)
21
21
 

2

update

2016/12/14 03:37

投稿

yohhoy
yohhoy

スコア6191

answer CHANGED
@@ -13,6 +13,12 @@
13
13
 
14
14
  ---
15
15
 
16
+ > C言語を標準C++で置き換えた場合にwindowsAPIの使われ方がどう違うのか分かっていません。
17
+
18
+ WinAPIの使い方は、C言語とC++言語で全く同じです。WinAPIはC言語向けの関数として提供されますが、C++からはC++言語の関数をそのまま呼び出せます(C++プログラムからC言語ライブラリの`printf`関数を呼びだせるのと同じ)。
19
+
20
+ (厳密にはリンク時の名前マングリング規約などの留意点があるのですが、WinAPI提供ヘッダファイル内で考慮されているのでここでは無視します)
21
+
16
22
  > さらにAPIとC言語とで型名がちがうらしいのですが、どの型がどれに相当しているのかということや、
17
23
 
18
24
  WinAPIは固有の型(`LPCTSTR`, `DWORD`, `LPVOID`等)を大量に定義しています。これらはWindows OSの歴史的経緯もあり、全てを学習するのは難しいと思います。正直なところ相当な時代遅れ感もあり、これから新たに学習するのは全くおすすめできません。
@@ -25,8 +31,6 @@
25
31
 
26
32
  より詳細を知りたければ、[MSDN](https://msdn.microsoft.com/ja-jp/library/windows/desktop/ff381404.aspx)内を検索してください。
27
33
 
28
- ---
29
-
30
34
  > どの範囲までをC言語或いはC++で記述し、どの範囲からAPIで記述すればいいのかということも分かっていません。
31
35
 
32
36
  絶対的な指標はありません。一部の機能(例:ファイルの読み書きなど)はC/C++標準ライブラリとWinAPI両方で提供されますが、どちらが好ましいかはケース・バイ・ケースでしょう。

1

update

2016/12/14 03:36

投稿

yohhoy
yohhoy

スコア6191

answer CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  正直にお伝えしておくと、入門書を読み終えた段階で「C++言語×WinAPIのみでアプリケーション開発」は相当に高難易度かと思います。C++言語とWinAPIそれぞれにある程度慣れていたとしても、その組み合わせでの開発は **苦痛** と言って差し支えないレベルです。
5
5
 
6
- プログラミング言語やAPI・ライブラリ・フレームワークには適材適所がありますので、絶対にC++言語×WinAPIの組み合わせで学習するのだという強い意志が無いと途中で挫折することになります。
6
+ プログラミング言語やAPI・ライブラリ・フレームワークには適材適所がありますので、絶対にC++言語×WinAPIの組み合わせで学習するのだという強い意志が無いと途中で挫折することになります。まずは、どんなアプリケーションを作りたいのか?(便利なGUIツール?ゲーム?など)という点を整理してみてください。
7
7
 
8
8
  ----
9
9