コーディングの方法は? - ページ 205

 

簡単なDLL呼び出しのヘルプ?

私がしたいことは、DLLからMT4 Acc#を取得することです。

Dll_call は Dll_call_include に Dll_call.dll から"GetAccountNumber()" double を要求しています。

dllに間違ったAcc#があってもeaは問題なくロードされます。Mt4はそのdllを使用するように要求します。

3つのファイルは正しい3つのフォルダにあり、dllは.dllファイルです(コードを見るために.txtで添付されています。

どなたかエラーがないかコードを見ていただけませんか?

ありがとうございます

ファイル:
 

コンパイルしたDLL 内の.defファイルにGetAccountNumberを記述しましたか? これを行わないと動作しません。

また、エキスパートでAllow Dll importsが選択されていることを確認してください。

これが役立つといいのですが。

-ウルフ

 

私はC++に少し慣れていないので、私はdefファイルを勉強すると思います。私はDLLがあるライブラリのフォルダにdefファイルを追加すると、これを解決できるかもしれないと読みましたが、いいえ。

また、DLLをsystem32フォルダに追加することも読みましたが、やはりダメでした。

このプロジェクトを メールで送る予定なので、4つの異なるファイルをすべて異なるフォルダに配置する方法を説明する必要はないでしょう。

3つのファイルにあるコードは正しいですか?

ありがとうございます。

 

これはdefファイルです。

これはDLLと一緒にライブラリに入れる必要があるのでしょうか?

 
jimmynz:
これは、defファイルです。

.defファイルは、コンパイルされたC++ソリューションの一部です。 その後、コンパイルしたc++のdllをWindowsのsystem32フォルダにコピーします。 私はWindows xpの32ビットシステムを使用しています。

私はC++の専門家ではありませんが、この方法で動作させることができました。

 

助けてくれてありがとう、でもやっぱりダメ。

不思議なことに、通常のコードでEAを作成し、acc #をチェック しようとしました。

int a = 907671;

int b = AccountNumber()。

もし (b != a) {

Alert("Checking Account No! (" + DoubleToStr(li_16, 0) + ") wrong Acc");

return(0)}を実行します。

EAだと数字が何であろうとロードされるのですが、indiにすると正常に動作するのでしょうか?

ggrr

 

...

あなたのEAは常にロードされます(コンパイルを妨げるようなコーディングエラーがない場合)。

あなたは、EAが行う "通常の仕事 "をどこで止め、未許可のものがそれを行うのを防ぐかを決めればよいのです。通常は、start()の最初にこのようなチェック ルーチンを置きます。

//+------------------------------------------------------------------+

//| Dll_call.mq4 |

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

int start()

{

static bool alerted = false;

int a = 907671;

int b = AccountNumber();

if (b != a)

{

if (!alerted)

{

Comment("Checking Account No! (" + DoubleToStr(b, 0) + ") wrong Acc");

alerted = true;

}

return (0);

}

//

//

// the part that is not executed when account number is wrong

//

//

alerted = false;

Comment("continuing the rest of the job");

return(0);

}

でも、この手のチェックは、デコンパイラで数分でハックできてしまいます。

追記:Alert()をComment()に変更したので、ビジュアルバックテストで確認できるようになりました。

jimmynz:
ありがとうございます、でもやっぱりダメです。

というわけで、いつものコードでEAを作ってみました。

int a = 907671;

int b = AccountNumber();

if (b != a) {

Alert("Checking Account No! (" + DoubleToStr(li_16, 0) + ") wrong Acc");

return(0)}を実行します。

EAのままだと数字に関係なく読み込まれますが、indiにすると正常に動作するのですね。

えーっ
 
 
luxinterior:
だから、あなたの偉大な計画は、おそらくここで見つけた2つの無料のEAを取り、それらを一緒に'マージ'と一人当たり2Kでそれを販売することですか?いい度胸してますね。多分、あなたが本当に幸運なら、実際に彼らの時間、努力、知識を無償で提供してくれた二人のうちの一人は、あなたのためにそれをすることを申し出るでしょう。

でも、ちょっと待ってください。コードが「ぐちゃぐちゃ」なら、そのEAはデコンパイルされた市販のEAである可能性が高い。ってことなのか?バカヤロォォォォォォォォォォォォォォォォォォォォォォォォォォ

ラックス

おお、いい演説だ。これだけは言っておく。

どんなEAであっても、同じような考えの人がすでに作っている可能性が高いです。無料EA?冗談でしょう?このフォーラムで、そんな可能性を秘めたEAがあるのか?

また、自称デベロッパーの中には、他人をコピーして3000ドルのクラブサブスクリプションで販売している人もたくさんいます。そして最悪なのは、あなたの口座をパンクさせてしまうEAがあることです。ゼロ

また、私はここからEAを取ったことがありませんでした。このフォーラムでマージする価値のあるEAはどれでしょうか?また、コードがめちゃくちゃな場合、それは私がプログラマーにEAのコードを依頼する可能性があります。そして、より多くの機能が必要になったとき、私は別のプログラマーに助けを求めています...TO HELP !

コーディングのスタイルが違うので、時間が経つとコードがめちゃくちゃになるかもしれません。

また、私は市販のEAをデコンパイルしたわけではありません。私がそうだと言った理由は、あなたが自分でやっているからです。デコンパイラがどのような混乱を引き起こすかはわかりません。しかし、デコンパイラが混乱を引き起こす可能性があると確信しているのであれば、おそらくあなたはそれを使っているのでしょう。そうでなければ、知る由もないでしょう。

一つ忠告しておくと、他人をバカ呼ばわりしたり、警察やヒーローのように振る舞おうとする前に、まず自分自身を判断してください。そうでなければ、あなたの口から出たその言葉は、あなたがそれを飲み込まざるを得なくなる可能性があります。

ありがとうございました。

 

iMAOnArray()に関するヘルプ

こんにちは。

私はMT4初心者です...以下のコードをエキスパートに入れようと必死になっていますが、うまくいきません。

" iMAOnArray(ind_buffer1,Bars,SignalEMA,0,MODE_EMA,i); " です。

上記がEAで直接使用できないことは知っていますが、上記のMAを再コード化することで同じ結果を得ることは可能でしょうか? もし可能であれば、それについて何らかの支援をお願いしたいです。

よろしくお願いします。

理由: