# override-sample/include/libbase_ext.h

# 1 ファイル

## 1.1 override-sample/include/libbase_ext.h

オーバーライドライブラリ (動的リンク用) のヘッダーファイル。

このライブラリは libbase から動的にロードされ、
処理を引き受けるオーバーライド関数を提供します。

### 1.1.1 作者

c-modenization-kit sample team

### 1.1.2 バージョン

1.0.0

### 1.1.3 日付

2026/02/21

### 1.1.4 著作権

Copyright (C) CompanyName, Ltd. 2026. All rights reserved.

# 2 関数

## 2.1 override_func

    BASE_EXT_EXPORT int BASE_EXT_API override_func ( const int a, const int b, int *result )

sample_func のオーバーライド実装。

libbase の sample_func から動的にロードされ呼び出されます。
a * b を計算して result に格納します。

### 2.1.1 引数

- a [in] 第一オペランド。
- b [in] 第二オペランド。
- result [out] 計算結果を格納するポインタ。

### 2.1.2 戻り値

成功時は 0、失敗時は -1 を返します。

### 2.1.3 警告

result が NULL の場合は -1 を返します。

### 2.1.4 使用例

    int result;
    if (override_func(1, 2, &result) == 0) {
        console_output("result: %d\n", result);  // 出力: result: 2
    }

# 3 定数、マクロ

## 3.1 BASE_EXT_EXPORT

    #define BASE_EXT_EXPORT

DLL エクスポート/インポート制御マクロ。

ビルド条件に応じて以下の値を取ります。

条件 | 値
--- | ---
Linux (非 Windows) | (空)
Windows / `__INTELLISENSE__` 定義時 | (空)
Windows / `BASE_EXT_STATIC` 定義時 (静的リンク) | (空)
Windows / `BASE_EXT_EXPORTS` 定義時 (DLL ビルド) | `__declspec(dllexport)`
Windows / `BASE_EXT_EXPORTS` 未定義時 (DLL 利用側) | `__declspec(dllimport)`

## 3.2 BASE_EXT_API

    #define BASE_EXT_API

呼び出し規約マクロ。

Windows 環境では `__stdcall` 呼び出し規約を指定します。
Linux (非 Windows) 環境では空に展開されます。
既に定義済みの場合は再定義されません。