SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Monoでのプログラミング実例集

MonoでP/Invokeを試してみたよ!

Monoでマネージコードからアンマネージ関数を呼び出す

  • X ポスト
  • このエントリーをはてなブックマークに追加

ビルド

 「sub_wa4.cob」のビルドに次のようなシェルスクリプト「cob2so.sh」を使用しました。「~/bin」に保存し、実行権限を与えておきます。

cob2so.sh
#!/bin/sh
USERLIB="$HOME/lib"
USERSRC="$HOME/src/cob"
LIBNAME="libsubcob.so"
exec cobc -free -m -O -o $USERLIB/$LIBNAME $USERSRC/$1.cob
sub_wa4.cob のビルド実行例
> cob2so.sh sub_wa4
PInvokeExample3.cs のビルド実行例
> cd ~/src/cs/PInvokeExample
> gmcs PInvokeExample3.cs

実行

 コマンドライン引数の数に応じて、出力文字列を変えてみました。

実行例(コマンドライン引数なし)
画像
実行例(コマンドライン引数が一つ)
画像
実行例(コマンドライン引数が複数)
画像

 せっかくなので、何かコマンドを打ち間違えた時に呼び出せるようにするといいかもしれません。そこで今回は「momo」コマンドとして呼び出せるようにします。

「momo」設定例
#!/bin/sh
EXEFILE="$HOME/src/cs/PInvokeExample/PInvokeExample3.exe"
exec mono $EXEFILE "$@"

「~/bin/momo」として保存し、実行権限を与えます。

 多言語対応コンソール「mlterm」を使用し、「font:IPA UI Gothic、font size:15、行間隔:2」の設定で実行してみるとこんな感じで出力されます。

「momo」実行例
画像

6.まとめ

 Linux上のMono環境での基本的なP/Invokeの使用方法、P/Invokeを使用したOpenCOBOLとの連携について解説を行いました。

 Monoには「MonoはCOBOLで実装されている」という伝説(?)があり、この文言を目にした時から何かフォローできることはないかと考えてきました。また機会があればMono環境での基本的な機能について紹介したいと思います。

7.参考資料

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Monoでのプログラミング実例集連載記事一覧
この記事の著者

sta(エステーエー)

風来坊blog:sta.blockhead

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3460 2009/02/19 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング