• ベストアンサー

他人の作ったソースの見方(どこがスタート?)

ソースを渡され『見ておいてね』と言われました。 とりあえず処理を順を追って見ているのですが 一つの難問にぶつかりました。 『ハテこのソースはどういう形で呼ばれるのだろう』と言う事 mainもなければ動作する環境すら整っていない現状なので どの変から動いてどのように流れるのかが追えません… もちろんプログラムの説明などはなく ただ漠然とこういう動作だ!と言う機能設計書があるだけです。 現段階で出来る事と言えば…やはりココの処理を理解する だけで良いのでしょうか… 正直帰りたくなってきましたが…帰っちゃっていいものかな…

質問者が選んだベストアンサー

  • ベストアンサー
  • 12m24
  • ベストアンサー率23% (193/817)
回答No.2

 main がないということは、たぶんウィンドウアプリケーションを作っているのかと思います。  Windows:VCの場合は、WinMainあるいは、_tWinMainが始まりとなります。  ほかのことはリファレンスや入門書などを見るとわかると思います。

noname#6248
質問者

お礼

回答ありがとうございます。 おそらくDLLを作成している物かと思います。 呼び出し元は不明ですが何とかしてみます。

すると、全ての回答が全文表示されます。

その他の回答 (6)

noname#118114
noname#118114
回答No.7

それは、ただ見るだけならそれでもかまわないですけど、 そのプログラムがどんな機能について分からないと全く意味がないです。 指示を出した人に細かく聞くのが良いでしょう。 必要事項としては 1:作業の意味 2:ソースの開始位置 3:機能の詳細事項 4:受け取る引数の有無。あるのなら型と個数の情報 5:送る引数の有無。あるのなか型と個数の情報 です。 特に1は重要です。 もし指示を出した人が作業の意味に答えられなかったら嫌がらせの可能性があります。

noname#6248
質問者

お礼

回答ありがとうございます。 そして御礼が遅れてしまいもうしわけありません。 >指示を出した人に細かく聞くのが良い 聞けば聞くほど自分の未熟さが見えますね… 上への不満を酒の肴にしていた自分が情けない… つき上げれば良かったんですよね。 しっかし上は今日もいないんだよなぁ…まいっか それではっ。

noname#6248
質問者

補足

この場を借りて皆様へ… 質問から一ヶ月以上が過ぎたんですね… 結果から申し上げますと、この作業は単なる場つなぎだったようです。(遊ばせておくだけでは損と言う事ですね) ただ嫌がらせと言うわけではないと思います。(そう思いたいだけかもしれませんが…) 今までjava+web系一本だったので、要は『Cを理解しろ』と言う事だったらしいです。 本当にありがとうございました。

すると、全ての回答が全文表示されます。
  • ranx
  • ベストアンサー率24% (357/1463)
回答No.6

もう帰られたかな? 汎用のライブラリということもありますね。 そうであれば、どこから呼ばれているということではなく、 どこから呼ばれても動くように作られていなければいけません。 (例:sin()はどこから呼ばれてもサインの値を返す。) まあ、呼び出し方に一定のルールがある場合もありますが。 (例:fprintf()を呼ぶためには、予めfopen()が呼ばれていなくてはいけない。) そこら辺は機能設計書があるのなら、そこに書いてあるはずです。 (手抜きの設計書でなければ。) まずは設計書を見て、何をするプログラムなのかを理解すべきだと思います。

noname#6248
質問者

お礼

>汎用のライブラリ その可能性が強いです。 これ単体ではどうしようもないと言う事と、大まかな流れは見えてきました。 >そこら辺は機能設計書があるのなら、そこに書いてあるはずです。 >(手抜きの設計書でなければ。) 設計書…あれば良いんですけどね… ただ漠然と機能が書いてある設計書(要求定義に近いですかね…)のみで、プログラムの設計書はありません。 実際に動作させてみれば確認もできるのですけれど、データベースもまだ全然なんですよね… まぁ上に『何とかしてくれぇ』と言うための資料でも書き並べてまとめてみます… 回答ありがとうございました。

すると、全ての回答が全文表示されます。
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.5

関数の呼び出し関係だけでも把握するのなら、以下のようなソフトにぶち込んでみるというのは? EPTREE 1.09d http://www.vector.co.jp/soft/win95/prog/se119765.html CEDIT for Windows95/98/NT 5.07 http://www.vector.co.jp/soft/win95/prog/se105857.html C++ソ-スファイル解析ツ-ル Cmap+ 5.60 http://www.vector.co.jp/soft/win95/prog/se147595.html

参考URL:
http://www.vector.co.jp/soft/win95/prog/se119765.html, http://www.vector.co.jp/soft/win95/prog/se147595.html
noname#6248
質問者

お礼

回答ありがとうございます。 なるほどツールを使えば上手くいきそうですね。 その線で探ってみます。

すると、全ての回答が全文表示されます。
  • Mizyu
  • ベストアンサー率41% (245/593)
回答No.4

#2の方がおっしゃるように、多分WindowAPPでしょうね。 ただ、どこから始まっているかわからないのならその旨を上司に聞いた方が早いです。 人間はコンパイラじゃないんですから、人の作ったソースのみをおっかけて処理を完全に理解することは不可能に近いです。 上司に聞くポイントをまとめて、これらの回答をください!と直接言った方がよいです。 (その上司の人格にもよりますが、私は質問をどんどんしてくれる部下がいるととても頼もしく感じて嬉しいです) ポイントの例として ・Startはどこからか? ・このプログラムは何をするものなのか? ・このプログラムの中でどこの処理を理解すればよいか? ・また、どれくらいの期間で理解すればよいか? ・それを理解したあと、その後の作業で自分はどのような担当になるのか? (そのプログラムをどのように生かした作業をするのか? 効率向上、不具合解消、VerUP、似たような処理のものを新規作成) ・このプログラムを理解するのに最適な資料はないか? #1の方がおっしゃるように「丸投げ上司」は無能です。 でも、問題を一人抱えてしまう部下も周囲から見たら無能扱いになってしまいます。 問題があったら上司に相談する。このスタンスを守っていれば大丈夫です。 質問をどんどん投げるのはOKですが、同じことを何度も聞いたり、 調べればすぐわかることをすぐに質問したりするのはNGですね。 ちなみに… > 正直帰りたくなってきましたが…帰っちゃっていいものかな… 契約違反にならない&予定・実績がオンスケなら帰ってもいいんじゃないですか? 明日から連休ですからねw

noname#6248
質問者

お礼

具体的な例まで頂きありがとうございます。 『スタートはどこか?』以外は一応の資料はあるんですよね、要求&機能のみですが… 私の判断なのですがおそらく各々DLLを作っているのかなぁと言う所で落ち着いています。 だから関数のみで肝心の実行部分が不明なのだと… 守秘義務の関係上根幹のexeを作っている部分は見られなくとも、呼び出す方法等の仕様書が欲しかったですかね… 一応フレックスで15時までコアタイムなので帰ろうと思えば帰れますが… とりあえずは呼び方等、質問事項をまとめて帰ろうかと思います。 でないと週明け路頭に迷いそうなので… 回答ありがとうございました。

すると、全ての回答が全文表示されます。
  • Largo_sp
  • ベストアンサー率19% (105/538)
回答No.3

一応…プログラムがどのように動いくか解析して 恐らく、足りないモジュールがあると思うので それが指摘できる程度には読んでおきましょう 完全な正しいソースがあれば、そこからプログラム仕様書はかけますから… めちゃくちゃ面倒ですけど

noname#6248
質問者

お礼

>足りないモジュールがあると思うので これが呼び出し元なのでしょうね。 やはり読み取るしかないのでしょうね… ファイル数にして20数個だからまだ軽い方で素から何とかしてみますか… 回答ありがとうございました。

すると、全ての回答が全文表示されます。
  • mld_sakura
  • ベストアンサー率20% (264/1282)
回答No.1

あなたが悪いのではなく、指示したひとが悪いです。 一般的にソースの解析を行うには最低でもプログラム仕様書が必要です。 いきなりソースと機能設計だけなら、ほんとに「見るだけ」でいいのでは?? まぁ上司が新人に仕事を与えるワザだとも思えます。

noname#6248
質問者

お礼

回答ありがとうございます。 確かにその通りなんですよね。ですがその人ではなく、その上がマズイというが私の考えです… のんびりとC++のサイトでも眺めつつ時ガ来るのを待ちます。 やっぱり今は学ぶべき期間なのでしょうね…

すると、全ての回答が全文表示されます。

関連するQ&A