如何编码? - 页 205

 

请帮助解决简单的DLL调用问题?

我只想从一个dll中获取MT4的Acc#。

Dll_call 要求Dll_call_includeDll_call.dll 中获取"GetAccountNumber()"双倍数。

即使dll中的Acc#不对,EA也能正常加载。Mt4要求使用该dll。

这3个文件都在正确的3个文件夹中,dll是一个.dll文件(以.txt的形式附在后面查看代码。

谁能查看一下代码中的错误?

谢谢

附加的文件:
 

你是否将GetAccountNumber包含在你编译的dll 中的一个.def文件中? 你必须这样做,它才会工作。

另外,请确保为你的专家选择了Allow Dll导入。

希望这有帮助。

-wolfe

 

我对C++有点陌生,所以我想研究一下def文件。我读到将def文件添加到DLL所在的librarys文件夹中可能会解决这个问题,但没有。

我还读到了将DLL添加到system32文件夹中,还是不行。

我打算把这个项目 用电子邮件发给别人,所以我不想说如何把4个不同的文件放在不同的文件夹里。

这三个文件中的代码是否正确?

谢谢

 

这是def文件,看起来不错吧?

它是否需要和DLL一起放在图书馆里?

 
jimmynz:
这是def文件,看起来还好吗? 它需要和DLL一起放在librarys中吗?

.def文件是你编译的C++解决方案的一部分。 然后我把我编译的c++ dll复制到windows的system32文件夹中。 我使用的是32位系统的windows xp。

我也不是C++专家,但这是我能够使它工作的方法。

 

谢谢你的帮助,但还是不行。

奇怪的是,我试着用通常的代码做一个EA来检查 账户#。

int a = 907671;

int b = AccountNumber();

如果(b != a){

Alert("检查帐户号码!(" + DoubleToStr(li_16, 0) + ")错误的Acc")。

返回 (0)}

作为一个EA,无论数字是多少,它都会加载,但如果我把它作为一个indi,它可以正常工作?

ggrrr

 

...

你的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);

}

但是,这种检查也可以在几分钟内被反编译器破解。

PS:把Alert()改成Comment(),这样你就可以在可视化回测中检查它了。

jimmynz:
谢谢你的帮助,但还是不行。

奇怪的是,我试着用通常的代码做了一个EA来检查acc #。

int a = 907671;

int b = AccountNumber();

如果(b != a){

Alert("检查帐户号码!(" + DoubleToStr(li_16, 0) + ")错误的Acc")。

返回 (0)}

作为一个EA,无论数字是多少,它都会加载,但如果我把它作为一个indi,它可以正常工作?

ggrrr
 
[删除]  
luxinterior:
所以你的伟大计划是把你可能在这里找到的两个免费EA'合并'在一起,然后以2000美元一个的价格出售?你真有胆量,伙计也许如果你真的很幸运,这两个人中的一个会免费提供他们的时间、努力和知识,并为你做这件事。

哦,但是等等!如果代码是 "混乱的",那么这些EA就很可能是被反编译的商业EA。是这样吗?白痴!!!。

勒克斯

哦,说得好。让我告诉你吧。

不管你在看什么EA,很可能会有同样想法的人已经做了这个EA。免费的EA?你在跟我开玩笑吗?在这个论坛上,哪个EA有这种潜力?

另外,有很多自称是开发者的人也在抄袭别人的东西,以3000美元的俱乐部订阅费出售。而最糟糕的是,有的EA会把你的账户炸得粉碎。....ZERO

另外,我从来没有从这里拿过任何EA。哪个EA值得在这个论坛上进行合并?另外,如果代码混乱,可能是我要求程序员编码EA。然后,随着更多的功能需要,我要求不同的程序员......来帮助我!

不同的编码风格可能会随着时间的推移,把代码弄得一团糟。

另外,我没有反编译任何商业EA。你说我的原因,是你自己在做。我不知道反编译器会造成什么类型的混乱。但可以肯定的是,如果你如此肯定反编译器会造成混乱,那么你可能已经在使用它了。否则你永远不会知道。

有一个建议,在骂别人是白痴或试图表现得像一个警察/英雄救世主之前,先判断一下自己。否则,这些话从你嘴里说出来可能会迫使你把它们吞回去。

谢谢你。

 

关于iMAOnArray()的帮助

你好。

我是MT4的新手...我一直在努力尝试在专家中加入以下代码,但一直无法做到这一点

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

是的,我知道上述代码不能直接在EA中使用,但是否有可能通过重新编码上述MA来实现同样的结果? 如果是这样,我真的很希望得到一些帮助。

请注意。