如何从 MQL4 (.mq4) 中的当前 Class 获取文件名?

How to get a file name from a current Class in MQL4 (.mq4)?

为了防止出现一些样板代码,我想读取 class 正在执行的文件的文件名。

没有可用的默认 MQL4 函数,但应该可以使用本机 windows 函数( GetModuleFileName() 来自 kernel32.dll )

来源 - https://msdn.microsoft.com/nl-nl/library/windows/desktop/ms683197(v=vs.85).aspx

我确实阅读了 #import Kernel32.dll,并从那里窃取了一些功能,但它似乎不起作用。

#import "kernel32.dll"
  int  GetModuleFileName();
#import

它给我以下错误 ->

2015.01.05 00:15 Cannot find 'GetModuleFileName' in 'kernel32.dll'

它自己解释了,getModuleFileName 不在 kernel32.dll

有谁知道如何获取当前文件名?

我找到了解决方法..

具有以下功能

typename(this);

给出了 ClassName.. 这足以让我使用..

输出真实'file-name'的函数还是很受欢迎的

当前文件名是 read-able 通过 __FILE__ 宏。

New-MQL4 内置支持显示当前文件名。

通过对 __FILE____LINE____PATH__ 等的支持,人们可以实现任何 in-vivo / post-mortem 代码报告工具套件满足自己的需求.

MetaEditor 文档显示了其他附加宏 __FUNCSIG____MQL4BUILD__ 等等。