Windows APIをVB2008から使うことのメリット

タグの編集
投稿者 初級者A  (社会人) 投稿日時 2008/12/24 18:48:05
Windows APIをVB2008から使うことのメリットをおしえてください。
投稿者 るしぇ  (社会人) 投稿日時 2008/12/24 19:09:24
知識の無い初級者は使わなくていいと思います。

VB2008 から使おうが、VB6.0 から使おうが、API を使うことの
メリット、デメリットは変わらないと思います。
質問がなんか。。。理解できていない人の質問です。。。
なぜそのような質問が出てきましたか?
投稿者 あにす  (社会人) 投稿日時 2008/12/24 19:17:49
WindowsAPIをVB2008から使わないと出来ないことが出来ます。
えーっと、具体例が出てこない…。
例えばこれ
http://msdn.microsoft.com/ja-jp/library/cc440869.aspx
とか。他にもいろいろあると思います。
投稿者 初級者A  (社会人) 投稿日時 2008/12/24 19:19:15
「WIN32APIを呼び出す必要がないのがC#、VBのメリットだ。 
ほとんどの場合APIを呼ぶ必要はない、ちゃんとそれ相応のクラスが用意されている。 」
ととある掲示板に書かれてありました。
どちらを使おうと速度面などにも相違はないのでしょうか?

投稿者 初級者A  (社会人) 投稿日時 2008/12/24 19:23:36
あにすさん、有り難うございます。上記のレスは投稿がほぼ同時だったのであにすさんのレスを見る前に
書き込んだものです。
投稿者   (社会人) 投稿日時 2008/12/24 19:32:32
速度面に関しては、同等の機能を.Net FrameworkとWIN32APIで実装して実測してみれば分かる。

でもWIN32APIの方が速くてもそんなに大きなメリットじゃないと思うなあ。
どちらかというとメンテナンスの面でかなりの難があるし。
投稿者 るしぇ  (社会人) 投稿日時 2008/12/24 20:08:20
>「WIN32APIを呼び出す必要がないのがC#、VBのメリットだ。 
>ほとんどの場合APIを呼ぶ必要はない、ちゃんとそれ相応のクラスが用意されている。 」

> どちらを使おうと速度面などにも相違はないのでしょうか?
の注目している点が違うんだよね。

.Net Framework も内部で API を呼んでるから、よほど変なプログラムを
組まない限り(というかAPIを理解してプログラムするなら)API で直接
命令するほうが速いプログラムを作れる可能性は高いでしょう。
ただ、VB の一般的なプログラムでその差が出てくることはありません。
そこに突っ込んでくると、VB やらずに C やりなさいって話になってくるのかも?

最近は PC の性能が良くなってるので、遅いプログラムと速いプログラムの
処理速度に差がなくなってきています。このため、処理速度より、同じプラット
フォームに乗っていることの方が重要だと考えます。

API を呼び出す必要がない場合は、呼び出さないようにして下さい。
投稿者 初級者A  (社会人) 投稿日時 2008/12/25 18:24:42
楽しくわかるプログラミングの定石(相沢崇絹恵著 CQ出版)<VB2002,2003>
を参考にしているのですが、ほとんどのプログラムにwinApi使いまくっているのですが
投稿者 るしぇ  (社会人) 投稿日時 2008/12/25 18:52:28
> 楽しくわかるプログラミングの定石(相沢崇絹恵著 CQ出版)<VB2002,2003>
> を参考にしているのですが、ほとんどのプログラムにwinApi使いまくっているのですが 
それは関係ない話でしょう?
こちらの説明は理解できましたか?ボクの結論も変わりません。

API を呼び出す必要がない場合は、呼び出さないようにして下さい。
投稿者 初級者A  (社会人) 投稿日時 2008/12/25 19:06:34
その本を参考にして勉強しているのですから、winAPIをつかわなきゃどうにもならないのでは?
投稿者 るしぇ  (社会人) 投稿日時 2008/12/25 19:30:12
つまり、他の参考書を買う余裕もないし、このまま同じ参考書を使いたいから、
API を使うこと自体に問題があっても
『API を呼び出す(コードを書く)必要がある』
と初級者A さんが判断したということですね?その判断には何の文句もありませんよ?

そもそもの質問が API を使うことのメリットだったわけですから、
それに対する結論が変わらないということです。
初級者A さんが API を使いまくっている参考書を使うかどうかというのは全く
別の話だと思いますが、違いますか?
投稿者 初級者A  (社会人) 投稿日時 2008/12/25 19:53:59
質問を撤回します。
実は、この本はゲームプログラミングの定石が掲載されているものですから
それで勉強していたのですが、いたるところでwinApiを呼びだしているのです。
ですからコーディングも大変です。
VB2008をつかって、winApiを使わないでコーディングをしようと思っていたときに
これはwinApiを使う必要があるから使っているのかな?なんらかのメリットが
あるから使用しているのでは?と思い最初の質問をした次第です。
ご理解いただけましたでしょうか
投稿者 neptune  (社会人) 投稿日時 2008/12/25 20:03:12
こんにちは
横から失礼

私もAPI使うのは割と抵抗の無い方なんですが、極力使わないようにしようと思っています。
使わなければ出来ないことは仕方ないですが。
何故ならば、既に書かれているようにframework内で用意されたクラスを使えば、
動作は保障されているわけで、変に気を使わなくても良いからです。
それに、使わない方が楽だしね。

後は、使う使わないは各人の判断だし、他の方からのアドバイスを受けた上で
>その本を参考にして勉強しているのですから、winAPIをつかわなきゃどうにもならないのでは?
と思うのならそれで良いのでそのようにすればよいだけの話です。

?とアドバイスされた方に言っても、仕方ないでしょう。
API を使うことのメリットに関しては恐らくどなたのアドバイスも同じでしょうから。
投稿者 neptune  (社会人) 投稿日時 2008/12/25 20:04:16
書いてる間に返答があったようですね。まぁ残しときましょう。
投稿者 るしぇ  (社会人) 投稿日時 2008/12/25 20:12:17
質問を撤回したところで。。。質問したい内容は変わらないのでは???

だからどうしようもないじゃない?
ゲームプログラミングに興味があるんでしょ?
で、その参考書を使うんでしょ?
API の勉強すればいいのでは?

どうして欲しいんでしょ?何の情報が必要なの?
質問に対する情報は流してきたと思うんだけど、何が足りない?
投稿者 cupid  (社会人) 投稿日時 2008/12/25 20:24:39
> 実は、この本はゲームプログラミングの定石が掲載されているものですから
> それで勉強していたのですが、いたるところでwinApiを呼びだしているのです。

突然横槍のようになりますが、私も一言(ひとこと)。
それは超高速処理、つまり早ければ早いほど良い、というソフトを目指すからでしょう。
私も、地図表示ソフトを作る場合、何十万ベクターの表示を可能な限り早く、
と考えて、かつてはWinApi使いました。
(今は、VB2005と.NetFrameworkでも、引け目は感じない。)

しかしその本は、やはりVB入門用として不適切と思う。
それに、本当に超高速処理を目指すなら、C++にすべきでしょうから。
なお本件と無関係ですが、VB2003と、VB2005またはVB2008とはかなり違う
印象があります。VB2005以降の方が良いように思います。