1

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

没有MQL4可用的默认功能,但应该可以使用本机 Windows 功能( a GetModuleFileName()from 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

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

4

2 回答 2

1

当前文件名可通过__FILE__宏读取。

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

有了对__FILE__, __LINE__, __PATH__et al 的支持,人们可以实现任何适合自己需要的体内/事后代码报告工具。

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

于 2016-01-11T15:39:31.923 回答
1

我找到了解决方法..

具有以下功能

typename(this);

给出了 ClassName.. 这给了我足够的工作量..

仍然欢迎使用输出真实“文件名”的函数。

于 2016-01-10T14:36:50.407 回答