電子書籍ギフト♪ 最大10,000円が当たる!

Win32APIは現在一般的に出回ってる32Bit版Windowsの
ApplicationProgramingInterfaceですよね?
これがそのうち一般的に出回るのが64Bit版Windowsに
なったときもWin32APIを勉強したときの知識は役に
たつのでしょうか?
またWin16→Win32に変わったときはどのような感じだ
ったんでしょうか?
あと少々質問とずれてしまいますが○○Bit版Windowsの
[○○Bit版]はどのような意味を持つのでしょうか?
暇なときにでも回答できたらお願いします

※ ○○=16 or 32 or 64 など

教えて!goo グレード

A 回答 (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
    • good
    • 0
この回答へのお礼

32bitと64bitの違いってそういう意味だったんですか・・・
了解しましたありがとうございます。

お礼日時:2007/06/05 03:23

★アドバイス


>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 の知識も同じですよ。
・以上。
    • good
    • 1
この回答へのお礼

>最近始めたパソコン・ユーザさんは『コマンド・プロンプト』を知らなかったり
確かに僕も名前くらいしか知らないですね(2000年にPC始めた)

覚えておいて損でないことがよくわかりましたありがとうございます。

お礼日時:2007/06/05 03:21

覚えなくても、


必要な時、レファレンスマニュアルを
引っ張り出して、調べればすむことでは、

どの関数もCの関数の標準的な使い方に、
のっとっておりますし。

ちなみに、Win32の前はWin32sで、
このときには、Windowsプログラミングをする者は少なかったようです
16ビット版では、Windowsプログラミングは、ほとんど知られていなかったとか。
DOSプログラミング全盛だったんですな。
    • good
    • 0

>○○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以上)でしか
使えなかったという事です。
    • good
    • 0

Win32 APIに限らず、覚えて損をすることというのは、そう多くはありません。


確かに、そのものズバリが役に立たなくなる可能性はありますが、将来登場するであろう様々な技術も、過去や現在のものを基礎として作られるわけですから、それらの習得が容易になることはほぼ間違いありません。
また、過去~現在の技術に関する知識・経験は、今後自分がそれらに変わる技術を生み出す立場になったときには、必要不可欠なものとなることでしょう。
    • good
    • 0

64bitになると、CPUの命令コードが増える


32bitではそれに対応できない(命令コード無いんだから対応しようがない)

API知識は、役にはたつだろうがソースがそのまま使い回せるかはMicrosoftの作り方にかかっている。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

教えて!goo グレード

人気Q&Aランキング