関数呼出 2-1 (別プロジェクトのモジュール(.lib),静的リンク)

これから別のモジュール (ライブラリ) で実装された関数を呼び出す方法を見ていきます。大きく分けて、
  1. スタティックライブラリ (.lib) を静的リンク
  2. ダイナミックライブラリ (.dll) を動的リンク、暗黙的ロード
  3. ダイナミックライブラリ (.dll) を動的リンク、明示的ロード
の3通りの方法があります。 実際に操作しながら確認してみます。

スタティックライブラリを使用する

まずは .lib ファイルを作ってみます [ソリューション エクスプローラー] より、一番上のソリューション項目を右クリック [追加] > [新しいプロジェクト] を押下します "C++" が選択されていることを確認します。一番上にある "空のプロジェクト" を選択します [次へ] を押下します
【備考】 [スタティック ライブラリ] を選択する方法もあります。ただ今回は1から作りたいため、"空のプロジェクト" を選択しています。
[プロジェクト名] に "MyLibStatic" と入力します [作成] を押下します これでソリューションにプロジェクトが追加されました。 [ソリューション エクスプローラー] にプロジェクト項目 "MyLibStatic" が増えたことを確認します
【備考】 ソリューションとは、複数のプロジェクトを管理するための枠組みです。今回、ソリューション "ConsoleApplication1" にプロジェクト "MyLibStatic" を追加しました。
[ソリューション エクスプローラー] よりプロジェクト "MyLibStatic" の [ソース ファイル] を右クリックします (TODO) (TODO) (TODO) (TODO)
int mylibstaticFunc() {
	return 777;
}
(TODO) (TODO) (TODO)
#pragma once
int mylibstaticFunc();
(TODO) (TODO) (TODO) [OK] を押下します (TODO) (TODO) ---
#include <stdio.h>
#include "MySource.h"
#include "../MyLibStatic/MyLibStatic.h"
int myFunc();

int main()
{
    printf("Hello World!\n");
    printf("myFunc: %d\n", myFunc());
    printf("mySourceFunc: %d\n", mySourceFunc());
    printf("mySourceFunc1: %d\n", mySourceFunc1(20));
    printf("mySourceFunc2: %d\n", mySourceFunc2(1,30));
    printf("mylibstaticFunc: %d\n", mylibstaticFunc());
}

int myFunc()
{
    return 123;
}