mql5语言的特点、微妙之处以及技巧 - 页 198 1...191192193194195196197198199200201202203204205...247 新评论 Vitaly Muzichenko 2021.02.27 13:52 #1971 Vladimir Simakov: 更新:在x86架构上--cpuid prsessor指令。msvs中有__cpuid(int[4],int)和__cpuidex(int[4],int,int)。例子可以在网上找到。 决定放弃处理器的信息--它没有显示任何东西。 我已经确定了磁盘,或者说它的分区,因为没有办法确定整个设备的编号。 有一个疑问,数据类型 是否正确? #property strict #import "kernel32.dll" bool GetVolumeInformationW(string RootPathName, ushort VolumeNameBuffer, uint VolumeNameSize, uint &VolumeSerialNumber[], uint MaximumComponentLength, uint FileSystemFlags, ushort FileSystemNameBuffer, uint FileSystemNameSize); #import //+------------------------------------------------------------------+ void OnStart() { Print(SystemDriveSerialNumber("C")); //--- } //+------------------------------------------------------------------+ //------------------------------------------------------------------------------------------------------------------- string SystemDriveSerialNumber(string sDrive) { uint iVolumeSerialNumber[1]= {0}; string sVolumeSerialNumber=""; if(GetVolumeInformationW("C:\\", NULL, 15, iVolumeSerialNumber, 0, 0, NULL, 15)) { sVolumeSerialNumber=IntegerToHexString(iVolumeSerialNumber[0]); sVolumeSerialNumber=StringSubstr(sVolumeSerialNumber,0,4)+"-"+StringSubstr(sVolumeSerialNumber,4); } return(sVolumeSerialNumber); } //+-------------------------------- string IntegerToHexString(uint num) { char __hex[]= {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; int len=0,k=0; char buff[64]; do { uint n=num&0xF; buff[len] = __hex[n]; len++; num>>=4; } while(num!=0); for(; k<len/2; k++) { buff[k]^=buff[len-k-1]; buff[len-k-1]^=buff[k]; buff[k]^=buff[len-k-1]; } return CharArrayToString(buff,0,len); } //+------------------------------------------------------------------+ Valeriy Yastremskiy 2021.02.27 14:20 #1972 Vitaly Muzichenko:决定放弃处理器的信息--它没有显示任何东西。我已经确定了磁盘,或者说它的分区,因为没有办法确定整个设备的编号。我有一个疑问,数据类型 是否正确? 主板的ID是正确的。 Vitaly Muzichenko 2021.02.27 16:02 #1973 Valeriy Yastremskiy:主板的ID是正确的。 是否有一个代码例子,你能给我看看吗? Valeriy Yastremskiy 2021.02.27 16:27 #1974 Vitaly Muzichenko:是否有示例代码,你能给我看看吗? 我在μl中找不到电路板的序列号。 wmic 基板获取序列号 在cmd中 Vitaly Muzichenko 2021.02.27 16:51 #1975 Valeriy Yastremskiy:如何获得μl中的电路板序列号,我没有找到。wmic 基板获取序列号 在cmd中 我也找不到它。 Vladimir Simakov 2021.02.27 18:47 #1976 Vitaly Muzichenko:... 一个疑问是数据类型 是否写得正确? #define BOOL bool #define LPWSTR string& #define LPCWSTR const LPWSTR #define DWORD uint #define LPDWORD DWORD& BOOL GetVolumeInformationW( LPCWSTR lpRootPathName, LPWSTR lpVolumeNameBuffer, DWORD nVolumeNameSize, LPDWORD lpVolumeSerialNumber, LPDWORD lpMaximumComponentLength, LPDWORD lpFileSystemFlags, LPWSTR lpFileSystemNameBuffer, DWORD nFileSystemNameSize ); 某种程度上)。 更新:适应于mql-signatures Vitaly Muzichenko 2021.02.28 00:21 #1977 Vladimir Simakov: 某种程度上)。更新:适应于mql-signatures 如果你可以一次性将类型放入一个函数而不拉伸代码,那么#define结构应用一次的意义何在? Igor Makanu 2021.02.28 00:37 #1978 Vitaly Muzichenko:如果你可以一次性将类型放入一个函数中而不拉长代码,那么#define结构使用一次的意义何在? 重点是,你可以读取和/或使用本地WinAPI函数签名 Vitaly Muzichenko 2021.02.28 00:44 #1979 Igor Makanu:在这个意义上,有可能读取和/或使用一个本地的WinAPI函数签名 也许吧,但问题恰恰在于此 关于交易、自动交易系统和策略测试的论坛 mql5的特殊性,技巧和窍门 Vitaly Muzichenko, 2021.02.28 00:21 如果你可以立即在函数中写出类型, 那么#define结构使用一次 有什么用,而不是为了拉长代码? 防守有什么好处吗? Vitaly Muzichenko 2021.02.28 01:04 #1980 Vladimir Simakov: 某种程度上)。更新:适应于mql-signatures WinAPI mql圣经有这样的功能 int GetVolumeInformationW( const string root_path_name, ushort &volume_name_buffer[], uint volume_name_size, uint &volume_serial_number, uint &maximum_component_length, uint &file_system_flags, ushort &file_system_name_buffer[], uint file_system_name_size ); 你的类型是不同的,它们一定是来自C#。 #define BOOL bool #define LPWSTR string& #define LPCWSTR const LPWSTR #define DWORD uint #define LPDWORD DWORD& BOOL GetVolumeInformationW( LPCWSTR lpRootPathName, LPWSTR lpVolumeNameBuffer, DWORD nVolumeNameSize, LPDWORD lpVolumeSerialNumber, LPDWORD lpMaximumComponentLength, LPDWORD lpFileSystemFlags, LPWSTR lpFileSystemNameBuffer, DWORD nFileSystemNameSize ); --- 所以我的问题是:哪里是正确的? 1...191192193194195196197198199200201202203204205...247 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
更新:在x86架构上--cpuid prsessor指令。msvs中有__cpuid(int[4],int)和__cpuidex(int[4],int,int)。例子可以在网上找到。
决定放弃处理器的信息--它没有显示任何东西。
我已经确定了磁盘,或者说它的分区,因为没有办法确定整个设备的编号。
有一个疑问,数据类型 是否正确?
决定放弃处理器的信息--它没有显示任何东西。
我已经确定了磁盘,或者说它的分区,因为没有办法确定整个设备的编号。
我有一个疑问,数据类型 是否正确?
主板的ID是正确的。
主板的ID是正确的。
是否有一个代码例子,你能给我看看吗?
是否有示例代码,你能给我看看吗?
我在μl中找不到电路板的序列号。
wmic 基板获取序列号
在cmd中
如何获得μl中的电路板序列号,我没有找到。
wmic 基板获取序列号
在cmd中
我也找不到它。
...
一个疑问是数据类型 是否写得正确?
某种程度上)。
更新:适应于mql-signatures
某种程度上)。
更新:适应于mql-signatures
如果你可以一次性将类型放入一个函数而不拉伸代码,那么#define结构应用一次的意义何在?
如果你可以一次性将类型放入一个函数中而不拉长代码,那么#define结构使用一次的意义何在?
重点是,你可以读取和/或使用本地WinAPI函数签名
在这个意义上,有可能读取和/或使用一个本地的WinAPI函数签名
也许吧,但问题恰恰在于此
关于交易、自动交易系统和策略测试的论坛
mql5的特殊性,技巧和窍门
Vitaly Muzichenko, 2021.02.28 00:21
如果你可以立即在函数中写出类型, 那么#define结构使用一次 有什么用,而不是为了拉长代码?
防守有什么好处吗?
某种程度上)。
更新:适应于mql-signatures
WinAPI mql圣经有这样的功能
你的类型是不同的,它们一定是来自C#。
---
所以我的问题是:哪里是正确的?