MODE_SMMA
已经是整数值2。
Print(IntegerToString(MODE_SMMA));
- www.mql5.com
已经是整数值2了。
你所说的并不符合我的需求。你可以从我的问题中读到,我知道如何将枚举值转换为字符串,但我想做的恰恰相反。
用代码。
int b =StringToEnum("MODE_SMMA")。
我想得到以下结果。
b = 2
没有StringToEnum。
MODE_SMMA
已经是整数值2。
int b=MODE_SMMA; Print("b= ",b);
int b; string StringToEnum="MODE_SMMA"; if(StringToEnum=="MODE_SMMA"){b=2;} Print("b= ",b);
你所说的并不符合我的需求。你可以从我的问题中读到,我知道如何将枚举值转换为字符串,但我想做的恰恰相反。
用代码。
int b =StringToEnum("MODE_SMMA")。
我想得到以下结果。
b = 2
谢谢你们
感谢Alain的建议,但实际上我还没有一个很好的解决方案来解决我的问题。
所以我不得不采取一些奇怪的变通方法。
如果mql5支持动态的代码评估,就像PHP 和Javascript 中的eval(...) 函数一样,那就真的太好了。
那么我们就可以从外部文件中加载小段的代码(有时非常有趣),甚至可以实现函数。StringToEnum 容易实现。
eval("return " + enumId + ";")。
}
换句话说,在eval(...) 函数的支持下,我们可以同时解决很多事情。
这可能是对MT5开发团队的一个非常有趣的建议。
谢谢你,Cyberglassed。
感谢Alain的建议,但实际上我还没有一个好的解决方案。
所以我不得不采取一些奇怪的变通方法。
如果mql5支持动态的代码评估,就像PHP 和Javascript 中的eval(...) 函数一样,那就真的太好了。
那么我们就可以从外部文件中加载小段的代码(有时非常有趣),甚至实现函数。StringToEnum 容易实现。
eval("return " + enumId + ";")。
}
换句话说,在eval(...) 函数的支持下,我们可以同时解决很多事情。
这可能是对MT5开发团队的一个非常有趣的建议。
谢谢你,Cyberglassed。
MQL已经有能力加载外部库(如DLL)或特定的#include文件,并以这种方式发生。 由于MQL也是一种OOP语言,在理论上,你可以自己编写该功能代码,并将其包含在你需要特定功能的程序中。 无论是在你的EA代码中,还是作为一个外部文件。
谢谢你,JD4,但不幸的是,这并不能解决我的要求,因为当你加载外部DLLs时,你传递给它一些参数,并根据这些参数得到一个结果,这是好的,但你是在其他语言/环境/地方编程,而不是完全在mql5中。我编程了自定义DLLs并将其加载到mql5中,对我来说,处理参数的语言并不重要,但在这个线程中,我希望数据在mql5中被处理,这样我就可以使用(例如)局部和全局变量了。如果你使用外部DLLs,你将不知道局部和全局变量的值,因为它就像一个外部处理机。然后,如果你在mql5中有一个像eval(...) 这样的函数(现在不是这样,因为没有实现),那么你就可以使用全局和局部变量,甚至是函数。
你好,如果我这样做
string a = EnumToString(MODE_SMMA);
我得到
a ="MODE_SMMA"
现在,我想用一些函数 来做相反的事情,我的意思是像这样。
int b =StringToEnum("MODE_SMMA")。
b = 2
其中2是与常量"MODE_SMMA"相关的int值。
问候,cyberged。