什么原因导致mql4中的堆栈溢出错误? - 页 2 1234 新评论 [删除] 2013.11.13 11:41 #11 RaptorUK: 如果你不想贴出所有的代码,这样就可以重现这个错误,请贴出一些可以重现同样错误的完整代码。 请看我在这之前的帖子。 William Roeder 2013.11.13 12:00 #12 你的附件 11/13/2013 03:25 PM 37,911 Ind_error_tester.mq4 11/13/2013 03:25 PM 37,911 Ind_error_tester_Neutralized.mq4 两个文件都是一样的。 [删除] 2013.11.13 12:12 #13 WHRoeder: 你的附件 11/13/2013 03:25 PM 37,911 Ind_error_tester.mq4 11/13/2013 03:25 PM 37,911 Ind_error_tester_Neutralized.mq4 两个文件都是一样的。 是的,对不起。我又附上了。 附加的文件: error_tester_rectified.zip 8 kb [删除] 2013.11.13 12:12 #14 在MT4中,我们要做的是编码员或错误收集者。 Simon Gniadkowski 2013.11.13 13:06 #15 RaptorUK:. .为什么你的函数类型是int? 很遗憾你没有回答这个问题 ......让函数 变成void ,因为它不需要返回任何东西,删除return(0)重新编译,会发生什么? William Roeder 2013.11.13 13:12 #16 显然,它不能处理那么大的一个函数。//+------------------------------------------- //| Custom indicator initialization function //+------------------------------------------- int init() { //---- indicators int Column1x=10,Column2x=300,Column3x=590, Column1xp=70,Column2xp=360,Column3xp=650, Column1xg=130,Column2xg=420,Column3xg=710, Column1xa=250,Column2xa=540,Column3xa=830; //---------------USD-------------------------- //---- EURUSD------------------- ObjectCreate("EURUSD", OBJ_LABEL, 0, 0, 0); : ObjectSet("EURGBP2", OBJPROP_YDISTANCE, ZoomTimes*60); ObjectCreate("EURGBP2c", OBJ_LABEL, 0, 0, 0); : //+------------------------------------------------------ //| Custom indicator initialization function //+------------------------------------------------------ int Column1x=10,Column2x=300,Column3x=590, Column1xp=70,Column2xp=360,Column3xp=650, Column1xg=130,Column2xg=420,Column3xg=710, Column1xa=250,Column2xa=540,Column3xa=830; int init(){ init1(); init2(); } int init1() { //---- indicators //---------------USD------------------------------------ //---- EURUSD------------------- ObjectCreate("EURUSD", OBJ_LABEL, 0, 0, 0); : ObjectSet("EURGBP2", OBJPROP_YDISTANCE, ZoomTimes*60); } int init2() { ObjectCreate("EURGBP2c", OBJ_LABEL, 0, 0, 0); : [删除] 2013.11.13 13:16 #17 RaptorUK: 可惜你没有回答这个问题 ......把这个函数设为void ,因为它不需要返回任何东西,去掉return(0) 重新编译,会发生什么? 是的,这也可以解决这个问题。但是,为什么?我的意思是,如果我们说这个函数 是一个int,我们需要这个值。为什么改变对象的一部分就能解决这个问题,无论函数是否为int。甚至start、init和deinit都是int,而且它们返回(0),所以这不是问题所在。 [删除] 2013.11.13 13:18 #18 WHRoeder: 显然,它不能处理那么大的一个函数。 whroeder知道我在说什么。 Simon Gniadkowski 2013.11.13 13:19 #19 tonny: 是的,这也是对它的整理。但是,为什么呢?我的意思是,如果我们说这个函数是一个int,我们需要这个值。为什么改变对象的一部分就能解决这个问题,无论函数是否是int。即使start、init和deinit都是int,而且它们返回(0),所以这不是问题。 return(0)返回的是一个int,int是零......一个void不会返回一个值,如果你想从一个void函数 中返回,你可以使用return。 Simon Gniadkowski 2013.11.13 13:22 #20 tonny: whroeder明白我在说什么。 但它可以处理那么大的函数......正如我所解释的,改变函数类型,同样大小的函数就不会出现编译错误。 1234 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
如果你不想贴出所有的代码,这样就可以重现这个错误,请贴出一些可以重现同样错误的完整代码。
请看我在这之前的帖子。
11/13/2013 03:25 PM 37,911 Ind_error_tester_Neutralized.mq4
你的附件
11/13/2013 03:25 PM 37,911 Ind_error_tester_Neutralized.mq4
是的,对不起。我又附上了。
. .为什么你的函数类型是int?
可惜你没有回答这个问题 ......把这个函数设为void ,因为它不需要返回任何东西,去掉return(0) 重新编译,会发生什么?
是的,这也可以解决这个问题。但是,为什么?我的意思是,如果我们说这个函数 是一个int,我们需要这个值。为什么改变对象的一部分就能解决这个问题,无论函数是否为int。甚至start、init和deinit都是int,而且它们返回(0),所以这不是问题所在。
显然,它不能处理那么大的一个函数。
whroeder知道我在说什么。
是的,这也是对它的整理。但是,为什么呢?我的意思是,如果我们说这个函数是一个int,我们需要这个值。为什么改变对象的一部分就能解决这个问题,无论函数是否是int。即使start、init和deinit都是int,而且它们返回(0),所以这不是问题。
whroeder明白我在说什么。