C言語の学習をVS.NET2003で始めたばかりの者です。
いわゆるhello worldをやりたいのですが、http://www.kumei.ne.jp/c_lang/net/index.html や http://www.birdport.jp/CPre/vs/を参考にさせて頂くと、確かにデバッグなしの開始ではちゃんと動きます。しかし、デバッグありの開始だと、
'test.exe': 'C:\WINDOWS\system32\ntdll.dll' を読み込みました。シンボルが読み込まれていません。
'test.exe': 'C:\WINDOWS\system32\kernel32.dll' を読み込みました。シンボルが読み込まれていません。
というのが出てきます。これが出てこないようなC言のためのC言による・・みたいな使い方が出来ないものでしょうか^^;
あと、コードの補完機能がC言語学習用には全然向かないものばかりで。
#inc くらいで、補完が効き、#include <stdio.h> となるように働かないのでしょうか。main関数も同様だし、カッコも自動で閉じてくれません。これだとメモ帳と変わらないし。
ヘボ過ぎる質問ですいません。
> 'test.exe': 'C:\WINDOWS\system32\ntdll.dll' を読み込みました。
> シンボルが読み込まれていません。
> 'test.exe': 'C:\WINDOWS\system32\kernel32.dll' を読み込みました。
> シンボルが読み込まれていません。
これらは実際に使用したDLLに関する報告であって、異常ではありません。
正しい挙動です。
> あと、コードの補完機能がC言語学習用には全然向かないものばかりで。
そもそも実用環境であって学習環境ではありませんし、学習用にはあまり
向かないといえばその通りだと思いますが、それは C/C++ 全般に言える
事であって特にVCに限った話とは思いません。
基本的には効率重視で過度な保護をしない言語ですし、
それを使うプログラマも「余計なお世話」を嫌う傾向があるような
気がします。あまりうるさいと個人的にもうっとうしいと思うだけかも。
VC.NET2003のコード補完は、実用価格のC/C++用IDEとしては
十分高水準にあると思います。(もっとダメダメな環境の方が多いのでは?)
エディタ相手だと(コード記述限定なら)物によりいい勝負ができそうですが
少なくともメモ帳よりはC/C++の学習に向いてると思いますし、
VCがメインターゲットにしているC/C++プログラマ像と、
あなたの望む方向性(初心者へのやさしさ)が異なっているだけかと思います。
例えばより文法の単純な他言語用IDEなどのような
手厚い補完機能は C/C++ の場合忘れた方がいいと思います。
> #inc くらいで、補完が効き、#include <stdio.h> となるように
> 働かないのでしょうか。
少なくとも現状の VC では働きません。
# 個人的にはそれで重くなるなら特に要らない/offにしたいくらいかも。
> main関数も同様だし、カッコも自動で閉じてくれません。
main は、C++ならグローバルスコープを明示して ::main と入力すれば、
::の時点で補完対象になります。(初心者でもわざわざ...な気がしますが)
# 引数はツールチップを表示するのみで、
# 括弧はフォーカスがあるときに対応する括弧を強調し、
# 対応括弧にジャンプできる。勝手にうるさい入力などしない。
# 個人的にはこの動作には不満はありません。
括弧まで含めてIDEに書いて欲しいなら、ツリーの方から
「関数の追加」ウィザードなどを呼び出してダイアログから
入力すればVCでもやってくれると思います。
これを使うくらいなら手書きで入力した方がはるかに効率的だと思いますし、
正直よく分かりませんが、MS派初心者の入力支援を(コード補完ではなく)
入力ダイアログ(ウィザード)で対応しているつもりだったりするのかも。
# ダイアログからの関数追加が「言語の勉強」に有用かどうかは
# 怪しいですが、「初心者でもとにかく追加できる」という最低限の
# 実用性はあるような......。
> これだとメモ帳と変わらないし。
そうですか?個人的にはインテリセンスだけで十分便利だと思いますが。
場合によっては、C++言語対応のテキストエディタなどを模索してみると
いいかもしれません。
IDE最大の利点は版の集中管理とかソースデバッグにあると思います。
入力機能なんて単なる付加機能の一つで、好みのものを使えばいいだけと
思いますし、(私は知りませんが)学習に向く入力ソフトがあるなら、
それを使えばいいと思います。
IDEが括弧の補完とか何から何までやってしまうとかえって勉強にならないような気がしますけれど。
勉強のためにするのでしたら、それこそ普通のエディタでソースを書いてコマンドプロンプトでコンパイラーを起動してコンパイル、リンクを行うような環境の方がかえって勉強になると思います。
プリプロセッサの使い方を覚えるのも、関数の調べ方を覚えるのも勉強のうちです。
プログラミングで覚えないといけない内容って言うのは単純にコードを書くだけの部分だけでは不十分だと思います。
他にもコンパイラのオプションだとか、Makeファイルの書き方だとか、etc..
知っておいた方が良い事は山ほどありますから。
あと、言語の勉強をするだけならMFCとかもかえって邪魔です。
きっぱり無い環境で勉強した方が混乱せずに済むと思います。
追加で一言。
IDEの支援機能ってどちらかと言うと言語を既に知っている人が
プログラミングの手間を少しでも減らす為のものであって
これから勉強しようって人が使うための機能ではないような気がします。
IDEが手取り足取りしてしまうと覚えるべき事を覚えないようになってしまいそうで
そっちの方が問題な気がします。
Banさん、Patioさん、回答ありがとうございます。
返信遅れて申し訳ありません。
>そもそも実用環境であって学習環境ではありませんし
それは痛感しました。いや、C言の勉強はエディタとコマンドでも十分だったんですが、VSならそういう使い方も可能にしてくれるのではないかと、少し夢みてしまった次第で。あれこれ自分でも調べてもそれらしい情報はないし困ったんですが、VSをよくご存知の方にピシッと言ってもらったのでスキッとしました。
>基本的には効率重視で過度な保護をしない言語ですし、
それを使うプログラマも「余計なお世話」を嫌う傾向があるような
気がします。あまりうるさいと個人的にもうっとうしいと思うだけかも。
どうも使い慣れてる方はそう仰るようですね。
>VC.NET2003のコード補完は、実用価格のC/C++用IDEとしては
十分高水準にあると思います。(もっとダメダメな環境の方が多いのでは?)
他のIDEと比較して、VSのことをどうこう言ってるのでなく、Cの勉強をするには向いてなかったなぁと、ただそれが言いたかっただけで、気を悪くされたら平にご容赦を。。
>エディタ相手だと(コード記述限定なら)物によりいい勝負ができそうですが
少なくともメモ帳よりはC/C++の学習に向いてると思いますし、
VCがメインターゲットにしているC/C++プログラマ像と、
あなたの望む方向性(初心者へのやさしさ)が異なっているだけかと思います
Cとの互換性が保たれているる程度というイメージの方がいいようですね。もちろん、目標はWindowsのアプリケーションですから,C/C++の基本を出来るだけ早く済ませて、VSをどんどん使いこなしていきたいです。
実は先にJavaの方、勉強しててEclipseというのを使ってたんです。これは補完もフォーマット(入れ子構造にあわせて自動でインデント付けるとかですが)もすごく楽なんですよね。テキストエディタ(私はTeraPad)でやるよりも圧倒的に速いし、Javaクラスの記述ミスも気にしなくて済むしで、すっかり気に入ってしまった。EclipseはPHP開発でも同様だったので、それならCDTというC/C++プラグインはどうだろうと昨日、試してみました。コードアシストはデフォルトでまだそんなに整備されてないし、フォーマットの方もいまいちで、まだまだ発展途上という感じでした。そして何より、toolchainとしてVSを使いたかったんですが、ネット上の情報が少なくって、苦労してやってもどうもうまくいかない。なんとか試行錯誤でEclipseからVSを呼び出すところまでは出来たんですが、エラーが出てしまいます。時間もないのであきらめちゃいました。
それなら、エディタの方向でトライしてみようと思って、WZエディタをDL。ざっと見た感じ、そのままでは補完機能は無さそうだし、なにより体験版は30時間以内という時限爆弾みたいな制限があったので、ここで切捨てました。
次に以前から名前だけはよく聞いていた秀丸エディタです。これは使ってみて気に入ったらお金頂戴みたいなポリシーらしく、実験的に導入しても全然使える(ライセンスなしだと一部、再インストールの制限があるようですが)。で、マクロというやつを初めて使ってみました。LF-supplementと田楽DLLというのを秀丸に追加してこんな感じです。
http://www.littleforest.atnifty.com/software/lf-supplement/First.html
これだと拡張子ごとにテキストファイルで補完候補の一覧を作っておけるので確かに便利ですが、贅沢いうと、やはり自動でのインデント付けまで含めるとちょっと。。 あと秀丸のマクロ言語は覚えることがたくさん有りすぎて、秀丸のためだけにそこまでやるのもちょっと。。って印象でした。帯に短し、襷に長し^^;
そのほかにも2〜3、いろんなエディタ見てみましたが、使いにくいものばかりでした。
とりあえず、C言語用にはしばらく秀丸、EclipseのCDTを使ってみることにします。(日常のエディタとして秀丸を使うことにしたら、もちろん送金します)
>main は、C++ならグローバルスコープを明示して ::main と入力すれば、
::の時点で補完対象になります。(初心者でもわざわざ...な気がしますが)
#
#
#
ありがとうございます。覚えておきます。m(--)m
>IDE最大の利点は版の集中管理とかソースデバッグにあると思います。
入力機能なんて単なる付加機能の一つで、好みのものを使えばいいだけと
思いますし、(私は知りませんが)学習に向く入力ソフトがあるなら、
それを使えばいいと思います。
そのようですね。JavaのEclipseだと、とにかく周辺技術が多い。代表的なものだけでも、Ant,JUnit,CVS,Hibernate,Jad(&Jadclipse),サーバ関連など腐るほどあるけど、それらはEclipseというプラットフォームにプラグインの形でインストールされるもので、また一個一個、覚えないといけない利用上の知識が必要だしで、結局、自己責任の上、わからないことを調べるときに要求されるフットワークはOSSの方がきついかもしれませんね。
その点、VSの方がよく統合されてて使いやすくあるのかなと、ちょっと期待してます。
>勉強のためにするのでしたら、それこそ普通のエディタでソースを書いてコマンドプロンプトでコンパイラーを起動してコンパイル、リンクを行うような環境の方がかえって勉強になると思います。
仰るとおりですね。PerlやJavaでもそれをやってると、Windowsの操作をコマンドやバッチでやる思考回路みたいなのも出来てきますし。私はvsvars32.batにパスを通して、VSのコマンドプロンプトでなく、普通のcmdにVSを呼び出すようにしてます。
>プリプロセッサの使い方を覚えるのも、関数の調べ方を覚えるのも勉強のうちです。〜〜他にもコンパイラのオプションだとか、Makeファイルの書き方だとか、etc..知っておいた方が良い事は山ほどありますから。
IDEに過度に依存しないで、もっと原理的なところを丁寧におさえることの重要性ですね。また、それをやっておくと、IDEの機能の背景やら、詳細な使い方が理解できるようになるでしょうし。Cも、とにかく手を動かしまくって、体で覚えます。
>IDEの支援機能ってどちらかと言うと言語を既に知っている人が
プログラミングの手間を少しでも減らす為のものであって
これから勉強しようって人が使うための機能ではないような気がします。
IDEが手取り足取りしてしまうと覚えるべき事を覚えないようになってしまいそうでそっちの方が問題な気がします。
結局、それがこのスレッドの解決ということで。どうもありがとうございました。こちらは丁寧に教えていただけるサイトなので嬉しかったです。
また、お邪魔します。こちらからもいろんな情報を提供できるようになれるように頑張ります。
で、問題は秀丸にするか、CDTにするか、何にするかなんだよなぁ・・
解決マークつけるの忘れてました。
WZエディタ、あまりよく確かめなかったんですが(30時間だし)、プログラミングの補完そのものはあるようですね。
http://www.villagecenter.co.jp/soft/wz50/
TX-Cというマクロ言語もほぼCらしいです。しかし高いなぁ〜。。
Peggyというのもある。
あ、それから、秀丸の補完一覧をだすときのキーが、ver.4.16だとVSやEclipseのようなCtrl+Spaceが使えないのが気になりました。
ver.5では対応するとかいうのが書いてあったような気がします。
長々とすいません。
なんとなく Java の Eclipse と比較されてるのかなぁという気はしてました。
(ちなみに、私も Java の時には Exlipse 使ってます)
無償で C++ のコード整形をやってくれる IDE だと、
他に「Borland C++ BuilderX」とかあると思いますが、
個人的には趣味で他コンパイラをいじりたいときくらいしか使わないので、
(これは Personal でもデフォルトで BCC と g++(MinGW) がついてて切り替え式)
ほとんど使っていないエディタ機能についての評価は避けておきます。ご興味があれば。
>なんとなく Java の Eclipse と比較されてるのかなぁという気はしてました
>(ちなみに、私も Java の時には Exlipse 使ってます
JavaではEclipseって定番ですよね。あの機能でフリーなんだから、凄い。
>他に「Borland C++ BuilderX」とかあると思いますが
インストールして使ってみたところ、かなりいいですね。私が欲してた感じにかなり近いです^^
エディタでは、Peggyでも秀丸でもマクロをコツコツ作りこんでいけばいい感じになりそうです。ただ、IDEとはやっぱり違うだろうなぁという印象ですね。C++ BuilderXはマクロの拡張性がちょっと弱い気がしますが、やはりIDE特有の安定感とかリッチ感があって、こっちの方が個人的には使いやすそうです。いずれにしても、マクロとかカスタマイズとかに関しては、Cの文法が比較的に単純な分、そう苦にならないでしょうね。
Banさん、とても参考になりました。ありがとうございました!!
ツイート | ![]() |