Win32APIは現在一般的に出回ってる32Bit版Windowsの
ApplicationProgramingInterfaceですよね?
これがそのうち一般的に出回るのが64Bit版Windowsに
なったときもWin32APIを勉強したときの知識は役に
たつのでしょうか?
またWin16→Win32に変わったときはどのような感じだ
ったんでしょうか?
あと少々質問とずれてしまいますが○○Bit版Windowsの
[○○Bit版]はどのような意味を持つのでしょうか?
暇なときにでも回答できたらお願いします
※ ○○=16 or 32 or 64 など
No.6ベストアンサー
- 回答日時:
>64Bit版WindowsになったときもWin32APIを
>勉強したときの知識は役にたつのでしょうか?
ネイティブでモジュールを作れば、Win32Apiの環境でも
64bitで動作するソフトウェアを開発することは可能です。
内部的にどうなっていようと、公開される関数の
使用方法が変わっていなければ、十分に役に立つと思います。
(#1さんが言っているようにそこはMSしだいです)
>Win16→Win32
昔はDOSプログラミングが殆どだったようです。
最近のXPなどのWindowsOSにはMS-DOSに似たような、
「コマンド・プロンプト」がありますが、一応別物です。
「エスケープシーケンス」などが使えません。
WinApiは16Bitと32Bitで関数名自体が違う場合があったようです。
Win32Apiからはこれらはマクロ制御で切り替えを行っているところ
もあるようですが、レジストリ操作などはx64用と32bit用を併用する
場合などが存在する物には別々に用意されているようです。
(x64とx86のレジストリ位置が違う為)
>○○Bit版Windowsの[○○Bit版]はどのような意味を持つのでしょうか?
CPUの表現域が変わり、それに伴って
ソフトウェアが使用できる表現域も変わってきます。
例えば、分かりやすい(見やすい)所では32BitOSでは
メモリを4GB搭載したHW上でも32bitOS上で認識される
メモリの最大容量は3.25GBちょっとです。
しかし、64BitOSでは4GB以上でも認識されます。
これは、4GBの数値が符号なしの整数で、
32bitでは表しきれないためです。
2つの最大Bitを2進数で表すと以下のようになります。
32Bit
1111 1111 1111 1111 1111 1111 1111 1111
64bit
1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111
No.5
- 回答日時:
★アドバイス
>Win32APIは覚えて損する?
損はしないと思います。
・理由は Windows OS の内部は API で動いていると見れば、API を知ることは OS の
仕組みを理解する近道になります。また、例え今後 API 関数が利用できなくなっても
ソフトウェアを作成するために必要になる処理は提供されます。この提供される処理も
API と同じような機能だと思いますので Win32 API の知識は無駄にはなりませんよ。
・C → C++ → MFC という感じで Windows プログラミングをするときも API の知識が
あるか、無いかでは随分と理解力が変化しますので。API を知っている方が新しい
処理が提供されたときにより早くに理解して習得できるはずです。
・これは言語も同じです。
どれか1つの言語を主要言語として知っていれば、他の言語も1ヵ月もあればかなり
理解してプログラミングできるようになりますよね。例えば C → C++ → Java → C#
という感じで習得できます。
・要するにプログラミングの概念があれば早くに他の言語も習得できるので、Win32 APIも
知っていれば 64 ビット版の API が登場しても API が廃止になって新しい処理が提供
されてもどの道すぐに理解できるはずです。
・よって『Win32APIは覚えて損する?』の質問は損はしないとアドバイスします。
●アドバイス2
>[○○Bit版]はどのような意味を持つのでしょうか?
回答者 No.3 さんのアドバイスにあるように C 言語でいうポインタのサイズが違うのです。
また、64Bit版の Windows Vista は 32 Bit版のプログラムと 64 Bit版のプログラムが
共存できるようです。タスクマネージャにその情報が表示されるようです。
私は使ったことが無いため確認は出来ませんが、今年パソコン雑誌を読んで知りました。
・Windows Vista は去年にすでにバグが 7 つほど発見されていたようです。
修正することなく販売したようです。よって、SP1 が出るまで私は買わないかな。
余談:
・私は MS-DOS 時代からパソコンを始めました。
このため Windows 時代になってもコマンド・プロンプトをときどき使っています。
でも、最近始めたパソコン・ユーザさんは『コマンド・プロンプト』を知らなかったり、
難しいと考えてしまいます。MS-DOS 時代では基本知識であったコマンド・レベルの知識を
知っていると難しいとは思いません。むしろ、機能が拡張されて便利になったね。と思います。
・このことから昔の知識が『今』でも役に立っているのです。API の知識も同じですよ。
・以上。
>最近始めたパソコン・ユーザさんは『コマンド・プロンプト』を知らなかったり
確かに僕も名前くらいしか知らないですね(2000年にPC始めた)
覚えておいて損でないことがよくわかりましたありがとうございます。
No.4
- 回答日時:
覚えなくても、
必要な時、レファレンスマニュアルを
引っ張り出して、調べればすむことでは、
どの関数もCの関数の標準的な使い方に、
のっとっておりますし。
ちなみに、Win32の前はWin32sで、
このときには、Windowsプログラミングをする者は少なかったようです
16ビット版では、Windowsプログラミングは、ほとんど知られていなかったとか。
DOSプログラミング全盛だったんですな。
No.3
- 回答日時:
>○○Bit版Windowsの
>[○○Bit版]はどのような意味を持つのでしょうか?
最大の違いはメモリ空間だと思います。
具体的にはWindowsXp(32bit)の場合、
物理メモリを4GB(ギガバイト)までしか認識できません。※4GB = 32bit
また1プロセス(1つのアプリケーション)が確保できるメモリは2GBです。
しかしVista Ultimate 64bit版では128GBまでのメモリを認識できます。
またVisual C++ 2005ならコンパイル時のオプションで
64bitを選べばポインタのサイズが64bitになります。
32bit版 sizeof(int*) → 4
64bit版 sizeof(int*) → 8
アプリケーションによっては1プロセスで2GBでメモリでは
十分でないものもでてきています。(例えばAdobeのPhoto shop等ですが64bit版もでるようです。)
そういうソフトは64bit化する事による恩恵があります。
で肝心の質問のWin32API
が使われなくなる可能性はあるけど、それはどの技術を学んだところで同じ事です。
現時点ではVistaも結局ネイティブはWin32APIになりましたしまったく使わなくなるのは当分先です。
仮に時期Windows(3年後?)に廃止になったとしても
その知識がまったくの無駄にはなるとは思えません。
>またWin16→Win32に変わったときはどのような感じだったんでしょうか?
Win16は現在のWindows Vistaでも基本的には動きます。
Win16→Win32では単純にAPIの種類が増えて、そのWin32は新しいOS(Windows95以上)でしか
使えなかったという事です。
No.2
- 回答日時:
Win32 APIに限らず、覚えて損をすることというのは、そう多くはありません。
確かに、そのものズバリが役に立たなくなる可能性はありますが、将来登場するであろう様々な技術も、過去や現在のものを基礎として作られるわけですから、それらの習得が容易になることはほぼ間違いありません。
また、過去~現在の技術に関する知識・経験は、今後自分がそれらに変わる技術を生み出す立場になったときには、必要不可欠なものとなることでしょう。
No.1
- 回答日時:
64bitになると、CPUの命令コードが増える
32bitではそれに対応できない(命令コード無いんだから対応しようがない)
API知識は、役にはたつだろうがソースがそのまま使い回せるかはMicrosoftの作り方にかかっている。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでArrayListを使う為の「mscorlib.tlb」の参照設定について 3 2022/03/23 19:45
- 英語 英文和訳についての質問です。 2 2023/06/23 06:38
- その他(AV機器・カメラ) オーディオインターフェイスの24bitなど量子化bit数はどこで設定できるのでしょうか? 1 2022/06/26 07:58
- C言語・C++・C# ExcelCS 1 2023/01/27 19:47
- その他(プログラミング・Web制作) Visual Studio Code 関数の使い方について 3 2023/05/31 13:15
- Excel(エクセル) Excel 2019 32-bit版を64-bit版にするには? 8 2023/07/28 14:20
- 英語 What do you think a sick child needs most during t 3 2023/04/03 09:23
- Windows 7 Windows 11へアップグレードする時の方法 7 2023/01/17 23:31
- その他(Microsoft Office) 折れ線グラフ、同じ項目の色 4 2022/12/23 15:46
- TOEFL・TOEIC・英語検定 bitとlittleは両方ともに同じ 1 2022/08/10 13:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PGに慣れず適応障害と診断され...
-
自作でプレステ対応ゲームは作...
-
C言語、C+、C++、C#の違い
-
C言語とhtmlの違いを どな...
-
COBOLでのNOT = の AND条件
-
C++における継続行
-
リピート再生が出来ません
-
アセンブリ名とは??
-
C言語でBASE64のエンコードのプ...
-
小学生にプログラミング(Scratc...
-
身長187cmです。 新卒未経験か...
-
プログラムに書かれる"%"記号の...
-
C言語って古いですか?
-
abnormal program termination
-
encore と言う 譜面書きソフト...
-
HOLONついて教えてください。
-
COBOLで文字タイプを数字...
-
自営業でも実務経験に入る?
-
Pythonでの不均一なサイコロを...
-
もし仮に5つの言語(Python, J...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Linux Cプログラミングを学ぶた...
-
自作でプレステ対応ゲームは作...
-
工業高校生ですが、将来ゲーム...
-
プログラマーになったきっかけ...
-
プログラミングは独学で習得で...
-
情報工学科にはパソコン知識が...
-
Win32APIは覚えて損する?
-
「やさしいC」の次に読む本を探...
-
よい勉強法を教えてください!
-
プログラム脳の作り方
-
マックでCプログラミングを
-
ソフトウェア作成への勉強方法
-
C++Builder初心者の勉強法
-
397時間動画パソコン教室でスキ...
-
C#の基本文法が詳しく書かれて...
-
PGに慣れず適応障害と診断され...
-
プログラミングの学習方法
-
半年間で
-
ハッカーについて
-
Visual C++ .NET Standard Ver...
おすすめ情報