Mlib ver 3.8Windows環境でのグラフ描画用Cライブラリ
最新ニュース(2019/11/7)
mlibを使ったプログラミングの講義の資料を公開します。詳しい解説があるのでぜひ参考にして下さい。
電子情報理工学特論Iへ
お陰様で4500ダウンロードを突破しました。どうもありがとうございます。
使いものになるかどうかわかりませんが、どうぞ見ていってください。
また、質問、ご意見等ございましたら遠慮なくご連絡ください。
はじめに
電気系や機械系の学生の皆さん等は学部3年までにC言語の基礎的な演習等を受けてきたと思います.また,C言語による数値演算の講義等も受けてきたかも知れません.C言語を使って数値計算をする場合,おそらくUNIXベースのOSを使用していて,端末ウインドウでプログラムをコンパイル、実行し、その出力結果は端末ウインドウに現れていたと思います.もしくは,出力結果をファイルに落として,グラフ描画ソフトで結果を確認というのもあったかもしれませんね.
ところが,いざ研究室に配属されると,いきなり難しい数値シミュレーション等をC言語でやることになって困惑したことはないですか?しかも,UNIXではなくWindowsベースで...シミュレーションのアルゴリズムやそのコーディングを考えるだけでも精一杯なのに,違うOSでしかも統合開発環境のMicrosoft Visual C++とかC++ Builderを使うことになったりするともう大変です.まずは統合開発環境とは何ぞやというところから、勉強しなければなりません.
しかも,結果をグラフ化するためにコンソール型のアプリケーションではなく,Windowsアプリケーションとして作らなければならないとなると,フォームの作成やら,MFCやら,オブジェクト指向の考え方とか,クラスやらと、調べれば調べるほど聞いたこともない言葉ばかりが出てきて、いつまでたっても全く本題に入れないということになりかねません.学生さんだけではなく,昔からUNIXベースでCをやってこられた経験者の方でも同じかもしれません.Windows環境でちょっとした計算をCでやろうとしても,上記のように新たに覚えることがありすぎて,時間の都合上断念することもあるかもしれません.
このライブラリは2006年に公開しましたが、今となっては色々な解決法があります。知識のある人はPythonとかdirectXとか使えばリアルタイムのグラフ化はできるよっとか、アニメーションならunityでしょと言うかもしれません。でも『我々には時間がないんです』という方が多いと思います。できるだけ新しい知識を学ばずに、最低限の知識でちょっと結果を見たいということは多々あると思います。
長々と書いてきましたが,ここでご紹介するのは,そのようなちょっとしたC言語の計算と1次元、2次元データのグラフ化をWindowsのGUIアプリケーションとして簡単に作成できるC言語ライブラリです.Windowsアプリケーションとして実行しますので、わざわざ出力結果をファイルに落として、グラフソフトで表示というような手間はありません。また、基本的なコントロールボタン等もプログラム上で配置出来ますので、シミュレーションだけではなく、Windowsを用いた計測器、計測ボード等からのデータ取得といったリアルタイムでのグラフ化が必要なアプリケーションにも最適と思います。ぜひご利用下さい。
インストール方法
Visual Cの必要最低限の知識(プロジェクトの作成法,コンパイルと実行,ファイルのプロジェクトへの追加,デバッグ法)があれば十分なように配慮しています。Visual Studio は様々なEditionがありますが、フリーのもので十分利用できます。最新版はVisual Studio Community 2019で、動作確認できています。
インストールはこちらを参照して下さい。
また、mlibを使ったプロジェクトの作成方法はこちら(英語版)を参照して下さい。
使用例
本ライブラリでは上の図のように,複数のボタンやUNIX環境でのコンソール画面にあたるメモウインドウ,数値入力用のエディットボックス,グラフ描画用のグラフィックウインドウを備えた画面が作られ,各プッシュボタンに対応した処理をユーザが自由に作成できます.
まず、以下の二つのヘッダーファイルをダウンロード(右クリックで対象をファイルに保存)します。
ボタンの配置に関してはdef.h グラフ関連のライブラリ関数はmlib.h
その後、Visual Studioでプロジェクトを作成しますが、必ず空のデスクトップアプリケーションを作成して下さい。そのプロジェクトのホームディレクトリが以下に作成されます。
C:\Users\ユーザ名\source\repos\プロジェクト名\プロジェクト名
上記のファイルをプロジェクトのホームディレクトリにコピーした後、VisualStudioのソリューションエクスプローラーでプロジェクトのヘッダーファイルに"既存のファイルを追加"で登録します.最後に同様にソースファイルのCプログラムを例えば以下のような(test.c)に新規作成し
#include "def.h" #include "mlib.h" int main(int Number){ Printf("Hello World!"); }
等とし、デバック(緑の右矢印ボタンを押す)すれば,mlibのウインドウが現れます。プッシュボタンを押すとメモウインドウにHello World!と表示されるはずです.
使用法や簡単な参考プログラムはこちら(英語版)も参照して下さい。
関数等のより詳細なマニュアルはmanual_ver3_8.pdf
を参照して下さい.
すべてをまとめたプロジェクトファイルのサンプルを
からダウンロードできます.
これを解凍して./sample ver3_8/sample ver3_8/sample ver3_8.vcprojをダブルクリックすればサンプルプロジェクトが立ち上がりますので、実行させ、プッシュボタンを押してみてください. (プロジェクトの変換のウイザードが出た場合は変換して下さい)
応用例
このライブラリで最近作成したInterface社AD変換ボードの取り込みプログラムの例を示します。
Interface社の取り込みドライバの説明はMFC アプリケーションで表記されています。C++の知識、MFCの知識が必要ですね。
このライブラリを使えば、もっと手っ取り早く取り込み、波形描画等も出来ると思います。
ご興味のある方には簡単なサンプルプログラムもお分けいたします。これまで20名ほどにお分けいたしました。尚、(株)タートル工業のAD変換器からのデータ取り込み版もあります。
このサンプルはVisual studio 2010で作成したプロジェクトです。最新のVisual Studioでは変数や定数の定義が厳格化されており、その場合はデバッグ時に警告やエラーが出ると思います。mlib.hとdef.hをこのページの最新のバージョンに入れ替え、メイン関数の定義を int型に修正して使用して下さい。
あとがき
このライブラリは
・WisdomSoft
・猫でもわかるプログラミング
・C言語で始めるWindowsプログラミング
他多くのページを参考にさせて頂きました。ここに感謝の意を表します。
作者はこれまで本格的にC言語を使用した経験や、Windowsアプリケーションを作成した経験はありませんので、ソースは非常にC言語っぽくないものになっていると思います。また、おかしいところも多々あると思いますが、一応それなりには動作します。
本ライブラリは自由に配布しても結構です。実行可能形式の配布であれば商用での利用も問題ありません。
ご意見、ご質問等があればこちらまでお願いします。