戻る


やりたいこと

複数のEXEから使用される共通関数の開発をするときの、一例

もっともシンプルな形をとりたい。→コンソールアプリケーション、スタティックリンク


構成のイメージ


実際に作成してみよう…VS2008版

ソリューションの作成

空のソリューションを作成する

VisualStudio を起動する

ソリューションの作成を行う為に、プロジェクトの作成…を選択


シンプルに実装したいのでテンプレートはwin32 コンソールアプリケーションを使用する。
複数のプロジェクトを束ねるソリューションの名前、app1.exeを作成するプロジェクトとしてapp1を指定してみた


ソリューションとプロジェクトが作成された。

テスト的な実装をしてみる

単純に、hallow app1 を printf してみよう


ファイルが生成されている

ソースを打ち込んでみた

Ctrl F5 で実行してみる

おっと、、 改行をするようにしておこっと

共通関数のプロジェクトを作成

複数のプロジェクトから利用されるプロジェクトを作成する。共通モジュールは、一般にダイナミックリンク、スタティックリンクの方法があるが、スタティックリンクの方が、設定する要件が少ないだろう…という予見から、スタティックリンクでやってみる事にする。


作成されました。

共通関数を実装してみよう
func.cというソースファイルを作成し、単純なコードを書いた

app1からの呼び出し

作成した common_func1 を、app1のmain関数から呼び出してみる

ソースを変更する

このままだと、ヘッダも指定していないし、きっと、動作しないだろう!

いろいろエラーが出たので、片づけていきましょう

func1 を 指定して、コンパイル(ctrl F7)をすると…

コンパイルは通った

app1のmainをコンパイルすると…

警告が出ている

やはり、common_func1が見つかってない…当然だわなぁ

そこで、ヘッダファイルを作成し、連係できるようにしてみるか

app1と共通部品の連係

ヘッダファイルを作成してみる

common_function.hの実装を行い、プロトタイプ宣言の意味からfunc.cからも、ヘッダをインクルードしてみた

app1 の main 側に ヘッダファイルを追加するが、

コンパイルをかけると、ヘッダファイルが開けない…という! プロジェクトが違うから、みれないはずだわねぇ

コンパイルの段階でも、ヘッダファイルが見つけられないといけないはずなので…コンパイラのインクルードパスの追加を行う
構成は、デバッグビルドもリリースビルドも 同じはずなので、「すべての構成」を選択していおいた


これで、コンパイルも正常終了したようです

次に、リンカに対する設定が必要なはず

common_function.lib が存在するディレクトリを指定します。デバッグビルドとリリースビルドは異なるので注意

さらに、libファイル名も指定します

では、ctrl F5 で実行してみよう

動いた!!

ではでは、app2を作成し、共通部品を呼べるようにしましょう

新規に追加したapp2に、main.cをドラッグコピーして、ソースをちょこっと修正

app2に、たいし、共通部品を呼べるように、コンパイラオプション、リンカオプションを設定


コマンドラインからも、確認してみよう


戻る