如何编码? - 页 205 1...198199200201202203204205206207208209210211212...347 新评论 jimmynz 2009.09.17 23:31 #2041 请帮助解决简单的DLL调用问题? 我只想从一个dll中获取MT4的Acc#。 Dll_call 要求Dll_call_include 从Dll_call.dll 中获取"GetAccountNumber()"双倍数。 即使dll中的Acc#不对,EA也能正常加载。Mt4要求使用该dll。 这3个文件都在正确的3个文件夹中,dll是一个.dll文件(以.txt的形式附在后面查看代码。 谁能查看一下代码中的错误? 谢谢 附加的文件: dll_call.mq4 1 kb dll_call_include.mqh 1 kb dll_call.txt 1 kb wolfe 2009.09.18 00:36 #2042 你是否将GetAccountNumber包含在你编译的dll 中的一个.def文件中? 你必须这样做,它才会工作。 另外,请确保为你的专家选择了Allow Dll导入。 希望这有帮助。 -wolfe jimmynz 2009.09.18 21:28 #2043 我对C++有点陌生,所以我想研究一下def文件。我读到将def文件添加到DLL所在的librarys文件夹中可能会解决这个问题,但没有。 我还读到了将DLL添加到system32文件夹中,还是不行。 我打算把这个项目 用电子邮件发给别人,所以我不想说如何把4个不同的文件放在不同的文件夹里。 这三个文件中的代码是否正确? 谢谢 jimmynz 2009.09.18 22:08 #2044 这是def文件,看起来不错吧? 它是否需要和DLL一起放在图书馆里? wolfe 2009.09.19 00:34 #2045 jimmynz: 这是def文件,看起来还好吗? 它需要和DLL一起放在librarys中吗? .def文件是你编译的C++解决方案的一部分。 然后我把我编译的c++ dll复制到windows的system32文件夹中。 我使用的是32位系统的windows xp。 我也不是C++专家,但这是我能够使它工作的方法。 jimmynz 2009.09.19 02:22 #2046 谢谢你的帮助,但还是不行。 奇怪的是,我试着用通常的代码做一个EA来检查 账户#。 int a = 907671; int b = AccountNumber(); 如果(b != a){ Alert("检查帐户号码!(" + DoubleToStr(li_16, 0) + ")错误的Acc")。 返回 (0)} 作为一个EA,无论数字是多少,它都会加载,但如果我把它作为一个indi,它可以正常工作? ggrrr Mladen Rakic 2009.09.19 10:02 #2047 ... 你的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 How to code? Simple EA - don't MQL4 Learning wolfe 2009.09.19 20:38 #2048 [删除] 2009.09.21 10:41 #2049 luxinterior: 所以你的伟大计划是把你可能在这里找到的两个免费EA'合并'在一起,然后以2000美元一个的价格出售?你真有胆量,伙计也许如果你真的很幸运,这两个人中的一个会免费提供他们的时间、努力和知识,并为你做这件事。哦,但是等等!如果代码是 "混乱的",那么这些EA就很可能是被反编译的商业EA。是这样吗?白痴!!!。 勒克斯 哦,说得好。让我告诉你吧。 不管你在看什么EA,很可能会有同样想法的人已经做了这个EA。免费的EA?你在跟我开玩笑吗?在这个论坛上,哪个EA有这种潜力? 另外,有很多自称是开发者的人也在抄袭别人的东西,以3000美元的俱乐部订阅费出售。而最糟糕的是,有的EA会把你的账户炸得粉碎。....ZERO 另外,我从来没有从这里拿过任何EA。哪个EA值得在这个论坛上进行合并?另外,如果代码混乱,可能是我要求程序员编码EA。然后,随着更多的功能需要,我要求不同的程序员......来帮助我! 不同的编码风格可能会随着时间的推移,把代码弄得一团糟。 另外,我没有反编译任何商业EA。你说我的原因,是你自己在做。我不知道反编译器会造成什么类型的混乱。但可以肯定的是,如果你如此肯定反编译器会造成混乱,那么你可能已经在使用它了。否则你永远不会知道。 有一个建议,在骂别人是白痴或试图表现得像一个警察/英雄救世主之前,先判断一下自己。否则,这些话从你嘴里说出来可能会迫使你把它们吞回去。 谢谢你。 smsfm 2009.09.21 23:27 #2050 关于iMAOnArray()的帮助 你好。 我是MT4的新手...我一直在努力尝试在专家中加入以下代码,但一直无法做到这一点 " iMAOnArray(ind_buffer1,Bars,SignalEMA,0,MODE_EMA,i); " 是的,我知道上述代码不能直接在EA中使用,但是否有可能通过重新编码上述MA来实现同样的结果? 如果是这样,我真的很希望得到一些帮助。 请注意。 1...198199200201202203204205206207208209210211212...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
请帮助解决简单的DLL调用问题?
我只想从一个dll中获取MT4的Acc#。
Dll_call 要求Dll_call_include 从Dll_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一起放在图书馆里?
这是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(),这样你就可以在可视化回测中检查它了。
谢谢你的帮助,但还是不行。
奇怪的是,我试着用通常的代码做了一个EA来检查acc #。
int a = 907671;
int b = AccountNumber();
如果(b != a){
Alert("检查帐户号码!(" + DoubleToStr(li_16, 0) + ")错误的Acc")。
返回 (0)}
作为一个EA,无论数字是多少,它都会加载,但如果我把它作为一个indi,它可以正常工作?
ggrrr所以你的伟大计划是把你可能在这里找到的两个免费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来实现同样的结果? 如果是这样,我真的很希望得到一些帮助。
请注意。