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に渡され、演奏が開始されます。
処理が正常に終了した場合はlpOutputFileにオブジェクトが出力されます。
演奏指定がされていた場合にはコンパイル後のデータがFMP7に渡され、演奏が開始されます。
データ解放
コンパイル実行時の各種情報を解放します。
void Free( void );
パラメータ
なし
戻り値
なし
解説
コンパイルの実行を行なうと、正常終了/エラー終了いずれの場合もコンパイル情報をメモリ上に保持しています。
コンパイル情報は次のファイルのコンパイルが実行されると、開放されるため累積していくことはありませんが、必要な情報取得を行った後にはメモリの開放を行って下さい。
コンパイル情報は次のファイルのコンパイルが実行されると、開放されるため累積していくことはありませんが、必要な情報取得を行った後にはメモリの開放を行って下さい。
コンパイル情報数取得
コンパイル種情のエントリ数を返します。
int GetInfoNo( void );
パラメータ
なし
戻り値
作成されたコンパイル情報の数が返ります。
解説
主にコンパイル情報取得APIで指定する最大情報番号の取得を行うために使用します。
コンパイル情報は正常処理でも作成されるため、本APIの情報数でコンパイルの可否を判断することは出来ません。
コンパイル情報は正常処理でも作成されるため、本APIの情報数でコンパイルの可否を判断することは出来ません。
コンパイル情報取得
コンパイル時の各種情報の取得を行います。
FMC32::INFO GetInfo( int nNo );
パラメータ
- nNo
取得する情報番号を指定します。
情報番号は0(ゼロ)から順に割り振られており、最大番号はコンパイル情報数取得APIにて取得します。
戻り値
正しいインデックス番号が指定されていた場合はFMC32::INFO型のポインタが返ります。
エラーの場合はNULLが返ります。
FMC32::INFO構造体の詳細はfmc32_control.hを参照下さい。
エラーの場合はNULLが返ります。
FMC32::INFO構造体の詳細はfmc32_control.hを参照下さい。
解説
コンパイル情報からは以下の情報が取得出来ます。
- ファイル情報
ファイル名、総使用パート数など出力ファイルに関係する情報となります。
エラーの有無に関わらず1件出力されます。 - パート情報
パート名、クロック数などパートに関係する情報となります。
コンパイル成功時に使用パート数分出力されます。 - コンパイルログ
エラー行、エラー内容などエラー・ワーニングに関係する情報となります。
エラーまたは、ワーニングいずれかが発生する度に出力されます。 - インフォメーション
コンパイラからの各種情報です。
エラーの有無に関わらず複数出力されることがあります。
動作オプション
コンパイル時の動作オプションを指定するダイアログを開きます。
void OptionSetting( HWND hWnd );
パラメータ
- hWnd
親のウィンドウハンドルを指定します。
指定されたハンドルに対してモーダルダイアログとしてウィンドウが作成されます。
親となるウィンドウが無い場合はNULLを指定します。
戻り値
なし
解説
設定は独自のウィンドウ(ダイアログ)上でユーザの入力による指定となります。
設定可能なオプションの詳細や範囲はバージョンよって異なります。
本ウィンドウで指定されるオプションをアプリケーション側で明示的にコントロールすることは出来ません。
設定可能なオプションの詳細や範囲はバージョンよって異なります。
本ウィンドウで指定されるオプションをアプリケーション側で明示的にコントロールすることは出来ません。