重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

Visual C++ 2008 を使っているのですが、ライブラリ関数の実装はどのファイルでされていますか?それとも隠されていて見ることはできないでしょうか。回答よろしくお願いします。

A 回答 (4件)

CRTは


http://msdn.microsoft.com/ja-jp/library/abx4dbyh …
にあるライブラリに含まれます。

そして,そのソースコードは,Visual Studio 2008 Standard Edition以上であれば,
%VCINSTALLDIR%\crt\src
にインストールされます (インストールしていれば)。
Express EditionではCRTのソースコードは付属していません。

手元のTeam SuiteのEulaではCRT/MFC/ATLの改変を許していますが,Express Editionでは改変を許していません。
このあたりが,無料と有料の境目だと思います。
    • good
    • 0
この回答へのお礼

VC2010がでるようなので有料版の購入を検討してみようと思います。
回答ありがとうございました!

お礼日時:2009/08/09 01:32

 こんにちは。


 実行しながら中に飛び込んで見る事も出来ます。
 思いっきり簡単に書くと、例えば内部的にmalloc()/free()はHeapAlloc()APIを呼び出していますし(破壊検出用のガード領域等も割り当てられ、双方向リンクリストで繋いでいる)、fopen()/fclose()/fread()/fwrite()等はCreateFile()API等を呼び出しているに過ぎません。
 スレッドセーフにする為に、クリティカルセクション等も使用されています。
    • good
    • 0
この回答へのお礼

デバッグのことでしょうか?
malloc等はアセンブリコードでも入れているのかと思っていましたが、APIを呼び出していたんですね。
回答ありがとうございました!

お礼日時:2009/08/09 20:59

ExpressEditionは不明ですが…



インストール時にCRTのソースとかインストールできたかと。
2005 StandardEditionですが、
C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\src
にcrtのソース入っています。
中覗いたことはほとんどありませんが。

# ソースモインストール済みならば…デバッグ版でステップ実行で追える…のか?
# SP当てた場合にCRTのソースまで更新されるかは不明。
    • good
    • 0
この回答へのお礼

ExpressEditionを使っているのですが、どうやらExpressEditionでは見れないようですね。
回答ありがとうございました!

お礼日時:2009/08/09 01:24

静的リンクライブラリも、動的リンクライブラリも、どちらも「コンパイル済みのバイナリオブジェクト」になっている為、実装を覗き見る事は出来ません。



実行ファイルを生成し、デバッガで「CPU命令コードレベルでトレースする」くらいが関の山です。
    • good
    • 0
この回答へのお礼

やはりコンパイル済みですか。
逆コンパイルして見てみることにします。
回答ありがとうございました!

お礼日時:2009/08/09 00:29

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