記事"インターネットを介して端末間でデータ交換をするためのWinInet.dll利用"についてのディスカッション - ページ 4

 
よし、気が変わった。このオブジェクトは試してみる価値がある。というのも、MetaQuotesのバカどもは、Strategy TesterでWebRequest関数を 使うことを禁じているからだ。
 

なんとかmt5 x64で動いた(メタグラバースクリプトはエラーなしで動いた)

internetlib.mqhクラスのコード変更 ::reqest

// リクエスト記述子を作成する
   string null = NULL;
   hRequest=HttpOpenRequestW(Connect,Verb,Object,Vers,nill,null,FLAG_KEEP_CONNECTION|FLAG_RELOAD|FLAG_PRAGMA_NOCACHE,0);
 

しかし、インターネットからのリクエストは、マーケット製品では使用できないと理解しています。

そして、DLL自体なしで#import "wininet.dll "を使用する他の方法はありませんか?

 
Yurij Izyumov:

しかし、インターネットからのリクエストは、マーケット製品では使用できないと理解しています。

そして、DLL自体なしで#import "wininet.dll "を使用する他の方法はありませんか?

すでに長い間WebRequestがあり、マーケットで許可されています。
 

URLはParseURL関数の外部変数 なので、以下のコードではURL変数をpathに置き換えています:

void ParseURL(string path,string &host,string &request,string &filename)

{

host=StringSubstr(path,7);

// 削除

int i=StringFind(host,"/");

request=StringSubstr(host,i);

host=StringSubstr(host,0,i);

string file="";

for(i=StringLen(path)-1; i>=0; i--)

if(StringSubstr(path,i,1)=="/")

{

file=StringSubstr(path,i+1);

break;

}

if(file!="") filename=file;

}

 

こんばんは!

XAMPPを使ってphpとapacheをインストールしました。しかし、MQL5からGETでページにアクセスできません。

以下が返ってきたエラーです:

アクセスが禁止されています!

要求されたオブジェクトにアクセスする権限がありません。

読み取り保護されているか、サーバーが読み取れないかのどちらか です。

この問題を解決する方法をご存知の方はいらっしゃいますか?
 
Andrey Khatimlianskii:
WebRequestはすでに長い間存在し、市場で許可されています。

市場にはすでに問題があり(mcl5ではアクセスが閉鎖されている)、インジケータでは動作しない。

 
Vladimir Pastushak:

すでに市場には問題があり(μl5ではアクセスが閉鎖されている)、インジケーターでは動作しない...。

WebRequestはインジケーターで動作したことはありません。開発者がプログラムを書く ときにWebRequestを使うかどうかを決めることができるからです。我々は21世紀のWinInet.dllでそれを作る
 
Vladimir Pastushak:

マートではすでに問題があり(mcl5ではアクセスが閉鎖されている)、インジケーターでは機能しない...。

市場での問題は何ですか?

また、なぜμl5でアクセスするのですか?


Vitaly Muzichenko:
WebRequestが指標で機能したことはない。開発者がプログラムを書く ときにWebRequestを使うかどうかを決めることができるからです。私たちは21世紀のWinInet.dllでそれを作ります。

理由は非常に簡単で、インジケータはインターフェイスのスレッドで動作し、一時停止するとチャート全体が中断されるからです。そして、誰もWebリクエストの即時実行を保証することはできません。

おそらく、CopyRatesのような特別なモードを作ることは可能でしょう。しかし、MQがそのようなウェブリクエスト用の松葉杖を作るとは思えない。

 
Andrey Khatimlianskii:

市場における問題点とは?

また、なぜμl5でアクセスするのですか?


理由は非常に簡単で、インジケータはインターフェイスのスレッドで動作し、一時停止するとチャート全体が中断されるからです。そして、誰もWebリクエストの即時実行を保証することはできません。

おそらく、CopyRatesに似た特別なモードを作ることができ、最初の呼び出しは単にデータを要求し、その後の呼び出しはそれを使用します。しかし、MQがウェブリクエストのためにそのようなツールを作ってくれるとは思えない。

実行 時にスケジュールを一時停止させればいい。繰り返しますが、WebRequestを使うかどうかは、プログラムを書くときに開発者自身が決めればいい のです。