Document of c-modernization-kit (calc dotnet wrapper) 1.0.0
Loading...
Searching...
No Matches
CalcApp Directory Reference
Directory dependency graph for CalcApp:

Files

 
ModuleInitializer.cs
 モジュール初期化処理。
 
Program.cs
 calc コマンドの .NET 版。

Detailed Description

calc コマンドライン電卓の .NET 版です。このアプリケーションは、CalcLib ライブラリラッパーを使用して基本的な整数演算を実行します。

概要

CalcApp は、2つの整数と演算子を受け取り、CalcLib ラッパーを介してネイティブ calc ライブラリを使用して計算を実行し、結果を出力するコマンドライン電卓です。

機能

要件

ビルド要件

ランタイム要件

ビルド

# アプリケーションをビルド
cd prod/calc.net/src/CalcApp
make build
# ビルド成果物をクリーン
make clean
# NuGet パッケージを復元
make restore

使用方法

CalcApp <num1> <operator> <num2>

演算子

# 加算
./CalcApp 10 + 20
# 出力: 30
# 減算
./CalcApp 15 - 5
# 出力: 10
# 乗算
./CalcApp 6 x 7
# 出力: 42
# 除算
./CalcApp 20 / 4
# 出力: 5
# 除算 (整数除算)
./CalcApp 10 / 3
# 出力: 3
# エラーケース - ゼロ除算
./CalcApp 10 / 0
# 出力: Error: calcHandler failed
# 終了コード: 1

コマンドライン引数

プログラムは正確に 3 つの引数を必要とします。

  1. num1 - 第 1 整数オペランド
  2. operator - 単一文字の演算子 (+, -, x, /)
  3. num2 - 第 2 整数オペランド

引数の検証

エラー処理

プログラムは成功または失敗に基づいて異なる終了コードを返します。

実装の詳細

アーキテクチャ

CalcApp (コンソールアプリ)
CalcLib (ラッパーライブラリ)
libcalc.so / libcalc.dll (ネイティブライブラリ)

プログラムフロー

  1. コマンドライン引数を解析
  2. 引数の数と形式を検証
  3. 文字列を整数に変換
  4. 演算子を CalcKind 列挙型にマッピング
  5. CalcLibrary.Calculate() を呼び出し
  6. 結果をチェックして値またはエラーを出力
  7. 適切な終了コードを返す

C 版との比較

.NET 版 (CalcApp) は、C 版 (calc) と同じ機能を提供します。

機能 C 版 .NET 版
コマンドラインインターフェース
4 つの基本演算
エラー処理
終了コード
ネイティブライブラリ 直接呼び出し P/Invoke ラッパー
プラットフォームサポート Windows/Linux Windows/Linux
整数解析 atoi() int.TryParse()
エラーメッセージ fprintf(stderr) Console.Error

ビルドシステムとの統合

アプリケーションは既存の makefile ビルドシステムに統合されています。

# プロジェクトルートからビルド
cd prod/calc.net/src
make # CalcApp を含むすべてのアプリケーションをビルド
# CalcApp のみをビルド
cd prod/calc.net/src/CalcApp
make build

トラブルシューティング

ネイティブライブラリが見つからない

エラー:

Error loading native library

解決方法:

  1. ネイティブライブラリがビルドされていることを確認:
    cd prod/calc/libsrc/calc
    make build
  2. ライブラリが prod/calc/lib/ に存在することを確認
  3. Linux では LD_LIBRARY_PATH を設定:
    export LD_LIBRARY_PATH=/path/to/c-modernization-kit/prod/calc/lib:$LD_LIBRARY_PATH

アプリケーションのビルドが失敗する

エラー:

Project reference not found

解決方法:

  1. 最初に CalcLib ライブラリをビルド:
    cd prod/calc.net/libsrc/CalcLib
    make build
  2. 次に CalcApp をビルド:
    cd prod/calc.net/src/CalcApp
    make build

ファイル