MQLプログラムにおいてsoundsフォルダ以外の音声ファイルを再生する方法

通常、MQLプログラムにおいて音声ファイルを使用するにはsoundsフォルダに配置する必要があります。

あまり知られていませんが、resourceとしてex4ファイルに組み込むことも可能です。

サンプルコード

以下がカスタムインジケーターのテンプレートコードを含むサンプルコードです。

#property version   "1.00"
#property strict
#property indicator_chart_window

#resource "\\sounds-smp\\001.wav"
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   
//---
   PlaySound("::sounds-smp\\001.wav");
   return(INIT_SUCCEEDED);
  }

サンプルコードのポイント

ポイント1 resourceの取り込み

起点がデータフォルダの”MQL4″フォルダとなっていますので、以下のファイルは『データフォルダ\MQL4\sounds-smp\001.wav』というパスの音声ファイルを取り込んでいます。

#resource "\\sounds-smp\\001.wav"

ポイント2 音声ファイルの呼び出し

以下のようにリソースとして登録したパスをPlaySoundに記述します。

PlaySound("::sounds-smp\\001.wav");

まとめ

この方法を用いることで、soundsフォルダに配置しなくても音声ファイルを実行ファイルに取り込むことができ、ユーザーの手間やサポートを減らすことが出来ます。

コメント

タイトルとURLをコピーしました