DOC@FMP7

Feed Rss

FMC.dll利用手引き

fmc.dllは、コンパイルの機能を外部のモジュールに提供するためのインタフェースを持っています。

公開されたAPIを利用することで、自作ソフトウェアで簡単にFMP用のデータ出力を行う事が可能です。
APIの利用にはSDK中のfmc32_control.hを利用して下さい。

fmc.dllはダイナミックリンクライブラリとしてのみ公開されます。スタティックリンクライブラリ(.lib)として公開される予定はありません。ダイナミックリンクライブラリのロード方法などはここでは割愛します。

公開APIファンクションについて解説します。

コンパイル実行

引数で渡されたファイル名のコンパイルを行います。

FMC32::eSTATUS Compile(
    LPWSTR lpInputFile,
    LPWSTR lpOutputFile,
    DWORD dwFlags
);

パラメータ

  • lpInputFile
    コンパイル対象のファイル名を指定します。
  • lpOutputFile
    出力オブジェクトファイル名を指定します。
    NULLが指定された場合はlpInputFileの拡張子を.owiに変更したファイル名で出力されます。
  • dwFlags
    コンパイル処理時の動作を以下の組み合わせで指定します。
    意味
    ONLY_PREPRO インクルードファイルやエイリアスの展開チェックのみ行います。
    ONLY_COMPILE コンパイルを実行しますがオブジェクトの出力は行いません。lpOutputFileで指定されたファイルは使用されません。
    PLAY_AFTER コンパイル実行後にエラーが発生しなかった場合に曲の演奏を行います。FMP7が予め起動されている必要があります。

戻り値

以下の戻り値を返します。
戻り値 意味
SUCCESS 正常終了
ERROR_COMPILE コンパイルエラー。エラーの詳細はコンパイル情報取得にて取得します。
ERROR_FILE_OPEN ファイルオープンエラー。lpInputFileに指定されたファイルが開けない。
ERROR_READ_FILE 読み込みエラー。lpInputFileに指定されたファイルが読み込めない。
ERROR_WRITE_FILE 書き込みエラー。lpOutputFileに指定されたファイルに書き込めない。
ERROR_DELETE_FILE 削除エラー。lpOutputFileの削除が行えない。
ERROR_NODATA 有効なデータなし。lpInputFileに有効なMMLデータの記述がない。

解説

lpInputFileで指定されたファイルをMMLデータファイルとして読み込み、コンパイルを行います。
処理が正常に終了した場合はlpOutputFileにオブジェクトが出力されます。
演奏指定がされていた場合にはコンパイル後のデータがFMP7に渡され、演奏が開始されます。

データ解放

コンパイル実行時の各種情報を解放します。

void Free(
    void
);

パラメータ

なし

戻り値

なし

解説

コンパイルの実行を行なうと、正常終了/エラー終了いずれの場合もコンパイル情報をメモリ上に保持しています。
コンパイル情報は次のファイルのコンパイルが実行されると、開放されるため累積していくことはありませんが、必要な情報取得を行った後にはメモリの開放を行って下さい。

コンパイル情報数取得

コンパイル種情のエントリ数を返します。

int GetInfoNo(
    void
);

パラメータ

なし

戻り値

作成されたコンパイル情報の数が返ります。

解説

主にコンパイル情報取得APIで指定する最大情報番号の取得を行うために使用します。
コンパイル情報は正常処理でも作成されるため、本APIの情報数でコンパイルの可否を判断することは出来ません。

コンパイル情報取得

コンパイル時の各種情報の取得を行います。

FMC32::INFO GetInfo(
    int nNo
);

パラメータ

  • nNo
    取得する情報番号を指定します。
    情報番号は0(ゼロ)から順に割り振られており、最大番号はコンパイル情報数取得APIにて取得します。

戻り値

正しいインデックス番号が指定されていた場合はFMC32::INFO型のポインタが返ります。
エラーの場合はNULLが返ります。
FMC32::INFO構造体の詳細はfmc32_control.hを参照下さい。

解説

コンパイル情報からは以下の情報が取得出来ます。

  • ファイル情報
    ファイル名、総使用パート数など出力ファイルに関係する情報となります。
    エラーの有無に関わらず1件出力されます。
  • パート情報
    パート名、クロック数などパートに関係する情報となります。
    コンパイル成功時に使用パート数分出力されます。
  • コンパイルログ
    エラー行、エラー内容などエラー・ワーニングに関係する情報となります。
    エラーまたは、ワーニングいずれかが発生する度に出力されます。
  • インフォメーション
    コンパイラからの各種情報です。
    エラーの有無に関わらず複数出力されることがあります。

動作オプション

コンパイル時の動作オプションを指定するダイアログを開きます。

void OptionSetting(
    HWND hWnd
);

パラメータ

  • hWnd
    親のウィンドウハンドルを指定します。
    指定されたハンドルに対してモーダルダイアログとしてウィンドウが作成されます。
    親となるウィンドウが無い場合はNULLを指定します。

戻り値

なし

解説

設定は独自のウィンドウ(ダイアログ)上でユーザの入力による指定となります。
設定可能なオプションの詳細や範囲はバージョンよって異なります。
本ウィンドウで指定されるオプションをアプリケーション側で明示的にコントロールすることは出来ません。

Comments are closed.


Top