トップページ⇒tech
114コメント47KB

C++をゼロから始めたいんだけど…

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
パソコンを買って半年の初心者ですが、
今度プログラムを始めようと思っています。
無謀にもネットワークゲームのようなものを
作りたいと考えているのですが、
どのソフトを買えば良いのか迷っています。
一応今考えているのはC++BuilderかVisualC++なのですが、
一体どちらのソフトを買うべきでしょうか?
教えてください。
00646NGNG
>>62
否定はしない。
0065デフォルトの名無しさんNGNG
DirectXの話は別でやるべし
00661NGNG
>>32 >>33
レスありがとうございます。
ウルティマオンラインのようなソフトがVC++で
作られているということは、メジャーなソフトは
大抵VC++で作られていると考えていいんでしょうか?

>結局、ああいうものを作るには
>どんな言語でも使える程度にプログラミングが
>出来る人間にならないと不可能なので
>1は知らなくてもいいことです。

おっしゃるとおりです。
0067デフォルトの名無しさんNGNG
>>60
COMが何のためにあるかよく考えてみよう。

(答え:COM屋の懐を潤すため)

デルファイのコンポーネントの100倍以上はあるよ<COM
0068turbo type DNGNG
>>67
COMのカタログはどこかありますか?
100倍はいいすぎなんじゃない?知らないけど。
DSPの100倍あったらすごいな。
0069デフォルトの名無しさんNGNG
>>67
いや、そのとおりなんだけど、
43の書き方はそういう部品のことを
考慮してる風じゃなかったので。

VCLもCOMもそういう意味ではどちらも同じく一例。
#対象やアーキテクチャは違うけど。

> (答え:COM屋の懐を潤すため)

DSPの名が出たんで便乗質問だけど、
FREEソフトのCOMってどれくらい有るんでしょうか?
売り物ばっかりだと萎えるんで…。
0070デフォルトの名無しさんNGNG
話の流れからこの場合、COMってActiveXコントロールのことを
指しているんだよね?

スタティックリンクできる Delphi コンポーネントがDLLで提供される
ActiveXコントロールより少ないはずは無いんだけどな。
0071デフォルトの名無しさんNGNG
>>70
>ActiveXコントロールより少ないはずは無いんだけどな。
何を根拠にそんなことを・・・。
0072turbo type DNGNG
COMの数は知らないのですが

DSPのDelphiコンポは把握できないほどある
(1000とかそれ以上とかか?DSPみると6000かな。)
から、それの100倍あるとかいう
COMの数を聞いてみたのですが

100倍もあったら60万とかいう数なんですが
そんな数把握できないような気が...
0073not 67NGNG
>>72
COMコンポーネントの個数というとどうやって調べればいいか
わからないけど、COMインターフェイスの種類なら、
今、手元のマシンで単純に数えて1200ぐらいあった。
Delphiコンポに比べて100倍は大杉かもしれないけど。

マシンに登録されてるCOMインターフェイス数は
HKEY_CLASSES_ROOT\CLSID以下のエントリ個数ね。
バージョン違いとかを集約するともっと減るとおもうけど。

これみると、MS製品はCOMの集合体ってことがよくわかるね。
フリーソフトでCOM持ってる有名どころといったらIriaかな。
0074turbo type DNGNG
>>67さんは、
売り物としてのDelphiコンポの
100倍程度売り物としてのCOMがあると
言いたかったんか!

今ごろ気が付いた...
0075デフォルトの名無しさんNGNG
>今、手元のマシンで単純に数えて1200ぐらいあった。
>Delphiコンポに比べて100倍は大杉かもしれないけど。

あうう。ある1台のマシンに今Installされてる数を
数えてもしょーがないよー。

それで言うならDSPのコンポを全部getして
しかも自分のDelphi環境に
「入れっぱなし(=UnInstallせずという意味)」な人
って、まず居ないだろうからして。

まぁOS自体を作っているという意味では
Winには最初からいっぱい入っているだろうな。
同じノリでdelphiを考えると、初期購入状態のDelphiに
RegisterされてるVCLの数とかClassの数とか、
あるいはどうせ我々は使えないが(笑)Delphi自体を作るのに
使われたであろう非公開Class(たとえばコンパイラ本体とか?)
の数とか、を数えることになるなあ。
まぁOS対言語系じゃ普通はOSが勝つと思うが。

動的リンクのほうが普及率には貢献するとは思いますよ。
なんせソース(笑)を公開しなくても配布できるから、
ソース公開したくない人々に受けが良い。
0076デフォルトの名無しさんNGNG
67で言ったCOMの総数は何を基準にしているのか明らかにして欲しいな。
OS付属のCOMも数に入れちゃ公平じゃないしな。

>>75
Delphi コンポーネントはソース非公開でも配布できるよ。
0077デフォルトの名無しさんNGNG
とりあえず「猫でもわかる」を踏破しとくと、
C,C++,windowsプログラミングの話についてけるようになると思う。
ゲーム作りってのは「応用」なんでそれからでも遅くは無い。

BC5でも使えるよね、確か。
0078デフォルトの名無しさんNGNG
>Delphi コンポーネントはソース非公開でも配布できるよ。

そりゃ不可能じゃないが、delphiのver変わるたびに
再コンパイル必要じゃん。

#俺はOpenSourceまんせーな人なので、却って嬉しいが(w

COMが、柔軟性の高い、というか結合度の弱い、ライブラリ方式を
採用したのは、そういうClosedSource畑的に困る問題を避けるためも
3%くらいはあったと思ってみたりする。#動的云々とはあまり関係ない話題だが
007967NGNG
単純に需要が100倍あると思ったんだけど。
Delphi+BCBと、VC+VB+Office+その他じゃそれくらいの差はあるかな、と。
わりと適当な見積もりだったのは認める。
けど、それほど的はずれじゃないとは思う。外してたら罵倒してくれ。
0080デフォルトの名無しさんNGNG
COMってDelphiでも使えるよね。比較する意味あるの?。
IriaもDelphiで作られてるでしょ。
0081デフォルトの名無しさんNGNG
>>80
>COMってDelphiでも使えるよね。比較する意味あるの?。
ないね。

Borland(Del、BCB)派と、MS(VC++)派の論争って、マカーとウィナーの
論争っぽくて不毛だね。
どちらも適材適所で使うプログラマもいる一方で、
自分の優位性を主張し、相手を否定するだけの厨房がいるところも同じ。
00821NGNG
話題に全くついて行けなくなっているのですが、
今までレスして頂いた方々の書き込みを読んで検討した結果、
無謀であろうことを承知の上で、VC++を買うことに決めました。
そこでもうひとつだけ質問させてほしいのですが、
VC++には「Enterprise」「Professional 」「Standard」と
三つのEditionがありますよね?
文字通り全くの「ゼロ」からプログラムを始めようという初心者は
一体どのEditionを買うべきなのでしょうか?
また、それぞれのEditionにはどんな違いがあるんでしょうか?
質問ばかりで本当に申し訳ありません。
0083"削除"��NGNG
>>82
うーん、それすら他人の意見をこんなとこで聞いているようじゃあ
やっぱりVCは無理だと思うが

まあ、DelphiとかC++Builderは
これから挫折するであろうVC++よりかは
遥かに簡単だという事は覚えておいてくれ。
世間で言うところのVB並には簡単だ。
だから挫折したならすぐに移行してこいって。

それで、こだわりを持っている奴なら
Proは買わないな。(VCでもC++Bでも)

という事はStdを買う奴は誰かっていうと
初心者しかいないだろうな。

もっというなら、VCのpro買う金も余裕あるのなら
VCのStdとC++BのLearningだっけ
どちらも一番易い版を買うのがいいと、
多くの人が思うのじゃないだろうか。

>>81
時々おもうよ、自分がマカーだったらやだなって。
C#は買うよ。そしたらVB.NET批判戦争がおきたりしてナー(藁

個人的にはVBAがマルチ言語対応してくれるだけで
いいんだけどなー
0084"削除"��NGNG
>>83
言葉足らずだったかな。
VC++/C++Bどちらも一番易いのを
両方買うとよろしい       ということです。
008567NGNG
>>80
優劣じゃなくて需要の比較なんだけど。
del/BCBで「しか」使えないコンポーネントと、del/BCB「でも」使えるCOMはどっちが需要が高いかって。
需要がある方が発展しやすいでしょう。っていう展開に持っていこうとおもたんだけど。
0086デフォルトの名無しさんNGNG
やっぱり、アセンブリ言語→C→生のC++ (すべてDOS版)
の順でプログラミングに慣れておくのが先。(藁)
0087デフォルトの名無しさんNGNG
需要があるわりに企業サイドでしか発展しなかったな。
やっぱり作りにくいから?インストールしずらいから?
環境に左右されやすいから?
0088デフォルトの名無しさんNGNG
>>87
作りにくい(作るのが難しい)のではなく、作ろうと思わないからなのでは?

Delの場合、コントロールやロジックの手ごろなコンポーネントが
添付されていて、ユーザーがその拡張版やもっと良いものを作ろう
という気になった。
けど、VC++の場合Wizardが吐くコードは旧態依然としたMFCコードで、
ActiveXコントロールが見えない。ユーザーはActiveXにトライする
前に不要で面倒なものと見てしまった。

のではないでしょうか。

VS.NETがActiveXコントロールとATL/WTL中心のコードを吐ける
ようになったら、「じゃあ俺も作ってみるか」って人がふえるんじゃ
ないでしょうか。

ActiveX…GUI持ってて埋め込みできるCOMコンポーネントとして
ます。どのインターフェイスを持ってたら埋め込めるのかはよく知らない。
ActiveXとかCOMとかCOM+とかOLE2とか、名前を乱発したのも、
ウケなかった理由かもね。
0089デフォルトの名無しさんNGNG
>del/BCBで「しか」使えないコンポーネントと、del/BCB「でも」使えるCOMはどっちが需要が高いかって。

アーキテクチャが違うゆえに住み分ける、ってのは
有り得る未来かなと思います。

VCLはあくまで言語内のObjectなんでオーバーヘッドが極小です。
PropertyだのRTTIだのいう部分も殆どの場合"経由せずに"コードが動きます。
#必要な場合だけ使うわけね、RTTIは。
プロセスローカルで済む用事ならこの方式が一番オトク。
0090デフォルトの名無しさんNGNG
ActiveXなんて生き残るの?IDispatch持ってるcomの事でしょ?(不確か)
0091デフォルトの名無しさんNGNG
>>82
本当にまったくのゼロなら、VCやBCBよりもフリーのコンパイラのほうが
いいと思います。エディタも開発環境も、フリーでとても立派なものがたくさんありますよ。
……私は何も知らずにVC買って後悔しました。
0092デフォルトの名無しさんNGNG
>>91
それは91が馬鹿だから。馬鹿は何を使ってもダメ。

全くのゼロなら、予備知識が山のように必要になるフリーのコンパイラを使うより
パッケージ製品を買った方が、本来必要となる知識の習得に集中できる。
0093デフォルトの名無しさんNGNG
>>92
いや、フリーソフト+できのヨイ解説本、という構成でも
OKだと思う。

まぁgccとかにソレがあるかは知らないけど。
「できる!gcc」なんて無さそうだし。

「できる!」系の画面写真で思い出したが、ttyrecというソフトが面白い。
テキストコンソールの入出力をリアルタイムで録画(w)し再生するソフト。
他人が過去にやったコマンドラインやEmacs(w)の画面を
後から実時間速度で見れるわけね。
あーいう仕掛けを使ってテキスト画面モノの解説をやると
理解を促進できてヨイんでわないだろうか?
GUIソフトのキャプチャよりデータ量食わないだろうし。
0094デフォルトの名無しさんNGNG
>ActiveXなんて生き残るの?IDispatch持ってるcomの事でしょ?(不確か)

生き残ります。レジストリにIDispatch情報書くのやめるそうです。
って名前が生き残るだけか。
0095しおNGNG
最終目標がネットゲーなんでしょ?
したら、RADなんか手を出さないほうがいいんでないの?
009691NGNG
>>92
>予備知識が山のように必要になる
コマンドコンパイラを直接使うわけではなく、コンパイルはフリーのツールを
使うんです。「ボタン一発コンパイル」なツール(しかも設定は自動)はたくさんありますよ。
ファイル操作の知識はもちろん要りますが……大丈夫でしょう。でなければ、覚えるまで。

91ではあまり考えずにレスをしましたが、VCやBCBの具体的な違いをあまり
知らずに(付け焼刃の情報で)製品を買うよりも、フリーのものを使って
勉強しながらじっくり情報集めをするほうがいいと思います。
0097デフォルトの名無しさんNGNG
>>90
それはオートメーションの定義だね。
0098デフォルトの名無しさんNGNG
用語の定義がいい加減で流動的だからこまる
0099デフォルトの名無しさんNGNG
ActiveXコントロールを名乗るために必要なインタフェースは
IUnknownだけだったはずです。
0100デフォルトの名無しさんNGNG
>>99
その通り
0101デフォルトの名無しさんNGNG
切り番getおめ>100
0102デフォルトの名無しさんNGNG
>>うれしいか?
0103デフォルトの名無しさんNGNG
うれしいにきまってんじゃん!
だって切り番getしたんだヨ?
0104デフォルトの名無しさんNGNG
>>95
ん?「Network対応のRAD」に手を出せばよいのでわ?
0105デフォルトの名無しさんNGNG
プログラマの切り番はいまなら128だろ?
0106デフォルトの名無しさんNGNG
>>91
同じく何も知らずに買ってちっと後悔
捨てようにも捨てられないので、いつか使いこなそうと思ってます
う〜む、何をやればいいのだ・・・
0107デフォルトの名無しさんNGNG
>>うれしいにきまってんじゃん!
そうですか。
0108デフォルトの名無しさんNGNG
[猫でも...]サイトを最初から最後までやってみれば?

捨てた方が身のためだとは思うけど。
010991NGNG
>>106
>いつか使いこなそうと思ってます
私もそんな状態なんです。
勉強しているうちに新バージョンが出ると聞いて、
しかもVC6はnewが例外吐かないし……。<SPで変わりますか?
0110デフォルトの名無しさんNGNG
>>109
変わらない。
VC6のC++は、ARM2版ぐらいの時代だと思う。
VCの発売後にC++の言語仕様が結構かわってるけど、過去のソースとの
互換性を保つためには、言語仕様を追ってばかりもいられない。
g++とかはそのあたり、結構豪快に過去互換性を捨てているので、
ソースに合わせてg++のバージョンを選ばないといけない。
本当は、そのあたりをコンパイルスイッチで変えられるといいんだけど。

どうしても例外で拾いたいのなら、例外投げる関数を_set_new_handlerで
できるかもしれない。
0111ななしNGNG
>>104
そもそもゲームで使うネットワークなんてTCP/UDP通信程度だから、まともなライブラリの
ある処理系ならなんでも構わない。と言ってやったらどうだ?
分散処理までとなると選択は難しいだろうが。
0112デフォルトの名無しさんNGNG
>>110
std::bad_cast例外もなんとかして欲しい。
011391NGNG
>>110
ありがとうございます。
調べてみます。
0114デフォルトの名無しさんNGNG
>VC6のC++は、ARM2版ぐらいの時代だと思う。
>VCの発売後にC++の言語仕様が結構かわってるけど、過去のソースとの
>互換性を保つためには、言語仕様を追ってばかりもいられない。

MS擁護って事では決してないが、この方針はそれなりに現実的
なんではないかと思う。VC++は業務用であり、学術用ではない
と考えたらなおさら。
■ このスレッドは過去ログ倉庫に格納されています