DLLをアンロードする方法 - ページ 8

 
alsu >> :

インタプリタが不具合でなければ、いくらクソでもコードのコマンドを飛ばすことはないでしょう

不具合」なんて最上級の言葉は使わないでください。インタプリタにいくつか不具合があっても、それは不具合とは言いません。少なくとも同じVCのバグレポートを見てください。何が「不具合」なのかを理解するのに非常にお勧めです。状況は桁違いに悪いのですが、まともな人はあえてVCを「不具合」と考えることはないでしょう。それはこちらも同じです。


それにしても、問題のDLはここにあったのか?dllが正しく書かれていること、つまり正しく動作すること、そしてdllをアンロードする唯一の正しい方法は、ドキュメントで推奨されている標準的な方法であることに異論はないでしょうか?

 
alsu >> :

アレックスエロー

時系列でのサイクル for(i=limit;i>=0;i--)終了後 、負の指数の領域まで飛んだ(これはアラートで必然的に確認された)!!!!


int start()
  {
   for(int i=11; i>=0; i--) continue;
   Alert( i);
   return(0);
  }

)))本心か?

なんということでしょう。知らなかった!!!

(今日はなんというか...だらだらとした一日だった)

 
jartmailru >> :

どういうことかというと、EAで特定のDLLを指定する必要があるのです。

その後、EAを実行し、Metatraderを終了させないでください。

次に、最も重要な使用例ですが、DLLを新しいものに置き換えているように見せかける必要があります。

メタトレーダーが動作しているときに失敗した場合(ファイルを削除して確認)-。

とすると、システムはそのDLLが使用中であると判断します。

をご覧ください。Expert Advisorの動作が完了し、DLLがアンロードされていない状態です。

現在、DLLを交換するためにアプリケーション全体を再起動する必要があります。

えーっ、もし私があなたの説明を正しく理解しているならば、DLLがフックされているEAを実行中にDLL自体を交換することを提案しているのですか!?EAを停止(ボタンで停止しない)し、DLLを入れ替え、EAを再起動してみましたか?

 
alsu писал(а)>>

しかし、恐怖に駆られたプログラマが、過剰にメモリを操作したり、計算のために端末からプロセッサ時間を奪ったり、神聖な(なんてこった)- terminal.exe メッセージキューに触れたりし始めた途端、悪のメタコが復讐を果たすのです。

そして、プログラムのメッセージキューハンドラは、実行されるすべてのコード断片に「マーリンのように、偉大で恐ろしい」ものであるべきだと?なぜ、DLLから他人のメッセージキューを触る必要があるのでしょうか?

そんな、身の毛もよだつようなことに遭遇してしまったのです。

今のところ言葉だけです。コードの例を教えてください。興味があるのは私だけではないはずです。

一般に、このようなdllが読み込まれないことには遭遇していません(すでに書きましたが、Expert Advisorでもindicatorsでもdllを使っており、いずれの場合もdllで直接「過度に熱心にメモリ操作やCPU時間を使う」必要があり、結果として望ましくない動作になっています)。

 
Svinozavr >> :

)))そういうことですか?

なんということでしょう。知らなかった!!!

(今日はなんて...めちゃくちゃな日なんだ)。

コードを正確に再現することはできませんが、次のようなものでした。

int start()
{

...

int i;
for ( i=100; i>=1; i--) //отмечу, что здесь было именно 1, а не 0
{
   //че-то делаем
   CallToDLLFunction();//здесь вызывалась какая-то простенькая функция, время работы порядка 1-3 миллисекунд
}

if( i<0) return(0); //эти две строчки вставил уже когда заподозрил неладное
Alert("i=", i);

return(0);
}

高速な市場では、1秒間に数ティック受信すると、このコードは、i=0、i=-1、i=-2、i=-3(start()が実行されるまでターミナルが逃したティックの数に応じて)、そして再びi=0のシーケンスを警告に生成しました。

ダニを見落とした......そんなこともあるさ。しかし、もしそうなったとしても、プログラムが条件付きコマンドをジャンプしなければならないわけではなく、実際にはコードの中で2回起こっている(forループも本質的には分岐コマンドである)。

 
HideYourRichess >> :

あなたの説明から正しく理解すれば、DLLがフックされているEAを実行中にDLL自体を交換することを示唆しているのですね!(・∀・)EAを停止(ボタンで停止しない)し、DLLを入れ替え、EAを再起動してみましたか?

もちろん、テスト終了後にDLLを入れ替えようとした場合の話です。

しかし、どうやらあなたの職業上の経験では、失敗をした後に

と掲示板の利用者に誤った態度で、言葉狩りを始めた方が得策です。

.

そしてもちろん、偉大なプロは簡単なテストをしようとはしなかった・・・。

 
ターミナルを起動し、テンプレートからインジケータをロード するときに、用語が不足している歴史の終わりをロードするときに、同じ効果が、より大きなスケール(-100とそれ以上)で観測された。
 
jartmailru >> :

もちろん、テスト終了後にDLLを入れ替えようとした場合の話です。しかし、どうやらあなたの職業上の経験から、あなたが犯した過ちやフォーラムのメンバーに対する誤った態度の後に、言葉を選び始める方が得策であるように思われます。

いや、我々の経験では、何が語られているのか、注意深く見極める必要があると思います。そして、もし「フォーラムメンバー」が馬鹿だったら......それはそれでいいんです、そういうこともあるんです、声に出して言ってはいけないんです。しかし、もし彼が無知の中の頑固な愚か者であるなら--そうだ、言葉の選択の余地はないのだ。そして、嘘をつく必要はない、私は何もミスをしていない。あなたと違って。


さて、私のExpert AdvisorのDllは正しく動作しています。今回で5回目ですが、これが最後です。多分、私の持っているDLLは、あなたのものとは違う、こんな灰色の、絶対に面白くないDLLなのでしょう。

 
alsu >> :

コードを正確に再現することはできませんが、次のようなものでした。

高速な市場では、1秒間に数ティック受信すると、このコードは、i = 0,i=-1,i=-2,i=-3 (ターミナルがstart()を実行するまでに逃したティックの数によって)、そして再びi=0のシーケンスを警告に生成しました。

ダニを見落とした......そんなこともあるさ。しかし、そうなったとしても、プログラムが条件付きコマンドをジャンプしなければならないわけではなく、実際にはコードの中で2回起こっている(forループも分岐コマンドである)。

私の混乱した最初の投稿で引用したように、ループの条件i>=0ではなく1を明確にすることで、疑いを払拭することができました。も病んでいる。

ジャンプの条件?かっこいい。なかったことに。この魔法のDLLは何ですか?)))

結果を再現できますか?そして、DLLそのものをご覧ください。私はそれを信じていないわけではありません - 私は本当にそのようなDLLを書く方法を学びたいと思うだけです。そうすれば、すべてがうまくいくでしょう。後で頭のいい人と話すネタができた...。

 
HideYourRichess >> :

そのため、私のEAでは、Dllは正しく動作しています。5回目、そして最後の報告です。私は別のDLLを持っている必要があります、そのような灰色の絶対に面白くないDLL、あなたのようではありません。

素晴らしい!あなたはすでに新しいレベル、つまり抽象度の高いレベルに到達しています。

あなたはおそらく、人と接する仕事、場合によっては商売の経験があるのではないでしょうか。

.

では、そのような理屈で考えてみましょう。私の主張を受け入れていただき、大変うれしく思っています。

私としては、私のDllがさらに正しく動作することを皆さんに保証するのみです。

いずれにしても、MetatraderのテスターとNeuroshellのDllと同じ結果でした。

.

しかし、簡単なテストをして報告することができない人間として、二度と回答しないでください。

>> 一般の方は除く。