ezds.dllファイル解析資料(このページ)ezds.dllファイル解析資料このページは、XOPSの動作に必要な「ezds.dll」ファイルの解析資料です。個人利用の範囲であれば構いませんが、データの無断転載は固くお断りします。本ページに記載されている内容の正確性は保証しませんし、私・管理人は一切の責任を負いません。このDLLファイルをXOPSとは無関係の他のソフトウェアに転用することは、開発元のnine-two氏の意向に反する可能性があります。※XOPSの説明書に『データの無断流用はご遠慮ください』という記載がされています。ezds.dllファイルを‘再配布’する場合は、開発元のnine-two氏へご確認ください。DLLの概要XOPS本体のexeファイルと同じディレクトリにあるezds.dllファイルは、nine-two氏が独自に開発したと思われるDLL(ダイナミックリンクライブラリ)で、XOPSのサウンド再生を担っているDLLです。SOUND」だと思われます。Extensions(WinMM)を使用しています。本家XOPSではezds.dllを明示的・動的リンクで利用しています。failed」とエラーが出て起動できません。バージョンの採用状況2013年10月時点でXOPSではバージョンは[0.3]と[0.4]の存在が確認されています。使用状況は以下の通りです。ENGINE(ver:0.28)」はver0.4、そして「FEBA:TANX(ver:0.22)」にはXOPSよりも新しいver0.5が使われています。0.96で使われているバージョン[0.4]を調査しました。ver0.4のDLLで定義されている関数と、その動作は以下の通りです。DSinit:DLL初期化DSend:DLL解放DSload:サウンドファイル個別読み込みDSplay:サウンド再生DSrelease:サウンドファイル個別解放DSver:DLLバージョン情報なおver0.3では、これらに加えて「DSloadL」と「DSloopOPE」が定義されていますが、「DSrelease」がありません。他の関数が同一かどうかは不明です。サウンドをループ再生させることはできません。(再生時間を考慮し連続で再生させることで、ループ再生を擬似的に表現可能かもしれません。)また、サウンドデータを解放することで再生中のサウンドを停止することができますが、解放せずに停止することはできません。このDLLは、仕様ともバグ・不具合とも考えられる制限がいくつかあるので、注意が必要です。サウンドファイルは最大で同時に28個までしか読み込めません。同じ音は同時に3個までしか再生できません。使用することができません。範囲を超えた番号を使用すると、サウンドの再生に失敗したり、内部で読み込みに失敗し半永久的に制御を返さなくなる場合があるので注意が必要です。DSplay()関数を初回実行時は、サウンドが再生され制御返ってくるまで一瞬停止します。DSplay()関数を呼び出した際には影響ありません。認識番号にも影響しません。各関数の詳細仕様それぞれの関数の詳細仕様です。0=失敗DLLを初期化します。DSver()関数を除く、全ての関数を使用する前に呼び出す必要があります。有効なサウンド再生デバイスが存在しないと、この関数は失敗します。この関数が失敗するとDSver()関数以外は使用できません。ウインドウにDirectXの初期化状況は問いません。後述のDSplay()関数の実行には失敗します。引数:なし戻り値:なしDLLを解放します。再生中のサウンドはすべて停止します。本関数を呼び出すことで自動的に全てのサウンドデータを解放します。本関数でDLLを解放した後は、再度DSinit()関数で初期化するまで、DSver()関数以外の全ての関数を呼び出すことができません。指定されたサウンドファイルを読み込み、認識番号に割り当てます。対応しているファイルはwave形式(.wav)です。使用中の認識番号を再利用する場合は、先にDSrelease()関数で解放してください。未解放の認識番号を再度指定した場合、元のデータを正しく解放せずデータが上書きされる可能性もあるため、推奨しません。無意味ですが、同じサウンドファイルを異なる認識番号に割り当てて読み込むこともできます。指定した認識番号のサウンドを再生します。再生音量(volume)は-100〜100が有効です。100は減衰なし、-100で無音になります。増幅(音量アップ)はできません。1〜100が右、-1〜-100が左に聞こえます。(範囲外の値を指定すると、DLLは成功を返しますが前回の音量・パン設定で再生されます。)サウンド再生中に同じ認識番号のサウンドを再度指定した場合は、重ねて再生されます。認識番号(0〜27)戻り値:なし指定された認識番号のサウンドデータを解放します。指定認識番号で再生中のサウンドは停止されますが、同関数で正しく解放せずにDSload()関数でデータを上書きした場合は、サウンドが停止しない場合があります。引数:なし戻り値:バージョン情報が書かれた文字列のポインタ本DLLのバージョン情報を取得します。nine-two」が返されます。この関数のみ、DSinit()関数を呼び出して初期化する前から利用できます。本家XOPSでは、この関数は使用していません。