从专业人员到超级专业人员的任何问题 - 1。 - 页 36

 
IgorM:

ZS:我通过搜索和GOOGLE找不到一个现成的NS,带FANN的.dll很好用,但我希望没有.dll

你有什么想法吗?要把正常编写的OOP代码移植到不发达的NS上?我认为没有人会这样做。更何况,通过dll会更快。

要求在5楼,他们已经在那里结巴了。

 

同志们,遇到了一个可以自我调用的指标,这里是部分代码(指标本身在预告片中)。

........
IndicatorFileName=WindowExpertName(); 
........
for(i=0,int y=0; i<limit; i++)
        {
         if(Time[i]<TimeArray[y]) y++;
         sslHup[i]=iCustom(NULL,TimeFrame,IndicatorFileName,Lb,SSL_BarLevel,0,y);
         sslHdn[i]=iCustom(NULL,TimeFrame,IndicatorFileName,Lb,SSL_BarLevel,1,y);
        }

测试员没有设法使用专家顾问的iCustom()正确调用它。这就是我们得到的结果。

专家顾问中的iCustom()看起来像这样。

iCustom (Symbol(), 0, "SSL_fast_sBar_Good_V12_1h", 1, 40, TF, 0, BarShift)

只有当测试者的TF与EA的设置中的TF相同时,它才会正确显示。

你能建议如何正确地进行它的调用,以便无论测试者的TF如何,它都能正确显示吗?
还是由于指标代码的特殊性而无法做到?

附加的文件:
 

阅读来自微软的文章:http://technet.microsoft.com/ru-ru/library/dd630755(v=office.12).aspx

以下是其中的一段话。

64-разрядные выпуски Windows Server могут выполнять адресацию 16 терабайт виртуальной памяти с помощью плоской модели адресации. Виртуальная память разделяется на равные части между виртуальными адресными пространствами для приложений и операционной системы. Увеличение адресного пространства виртуальной памяти в 64-разрядной среде может благоприятно сказаться даже на работе 32-разрядных приложений. Например, хотя 32-разрядное приложение по-прежнему ограничено 4 ГБ виртуальной памяти, ему больше не требуется разделять это пространство с операционной системой. В результате возникает фактическое расширение виртуальной памяти.

事实证明,在64位操作系统下,MT4可以寻址到4GB的内存?

我不能用自己来检查它。没有地方可以放那么多内存。

 

你好

关于插座的问题。

...有一个来自SCADA系统的任务,运行VB(古代)来发送数据到socket。我试图通过API直接从Vb实现它,但有一个问题

如果与套接字的连接失败,VB就会等待回复并减慢一些速度(这很关键)。

我想尝试从VB中创建单线程,但事实证明,VB并不理解AddressOf。

我如何解释VB等待来自远程套接字的响应,例如像Ping'a的TTL一样等待1秒(远程套接字在本地)?

尝试了另一种方法:在C++ bilder上写了一个控制台应用程序,发送到socket上。

试着运行它的工作。

然后我试图从VB.NET中创建独立的进程。Runtime运行,但不会发送任何数据。

我已经开始使用cout<<<endl进行调试了。

我看到,当我手动调用exe时,WsaStartUp以0的方式工作,并连接到0,发送返回的数据传输的数量

但当我用VB启动时,WsaStartUp对0起作用,对-1起作用,分别对10038起作用。

我不知道哪里出了问题。

以下是VB的代码

Public Declare Function socket Lib "WSOCK32.DLL" (ByVal af As Long, ByVal s_type As Long, ByVal protocol As Long) As Long

Public Declare Function send Lib "WSOCK32.DLL" (ByVal s As Long, buf As Any, ByVal buflen As Long, ByVal Flags As Long) As Long
Public Declare Function connect Lib "wsock32" (ByVal socket As Long, addr As sockaddr, ByVal namelen As Long) As Long


Public Declare Function closesocket Lib "WSOCK32.DLL" (ByVal s As Long) As Long
Public Declare Function inet_addr Lib "wsock32" (ByVal cp As String) As Long
Public Declare Function htons Lib "ws2_32.dll" (ByVal hostshort As Long) As Integer
Public Declare Function WSAStartup Lib "ws2_32.dll" (ByVal wVR As Long, lpWSAD As WSA_Data) As Long
Public Declare Function WSACleanUp Lib "wsock32" Alias "WSACleanup" () As Long

Type sockaddr
    sin_family As Integer
    sin_port As Integer
    sin_addr As Long
    sin_zero As String * 8
End Type

Public Const WSADESCRIPTION_LEN = 257
Public Const WSASYS_STATUS_LEN = 129
Public Const WINSOCK_VERSION = 1
Public Type WSA_Data
    wVersion       As Integer
    wHighVersion   As Integer
    szDescription  As String * WSADESCRIPTION_LEN
    szSystemStatus As String * WSASYS_STATUS_LEN
    iMaxSockets    As Integer
    iMaxUdpDg      As Integer
    lpVendorInfo   As Long
End Type

'===================================================================
Const INFINITE = &HFFFF
Const STARTF_USESHOWWINDOW = &H1


Public Const SW_NORMAL = 1

Private Type PROCESS_INFORMATION
    hProcess As Long
    hThread As Long
    dwProcessId As Long
    dwThreadId As Long
End Type

Private Type STARTUPINFO
    cb As Long
    lpReserved As String
    lpDesktop As String
    lpTitle As String
    dwX As Long
    dwY As Long
    dwXSize As Long
    dwYSize As Long
    dwXCountChars As Long
    dwYCountChars As Long
    dwFillAttribute As Long
    dwFlags As Long
    wShowWindow As Integer
    cbReserved2 As Integer
    lpReserved2 As Byte
    hStdInput As Long
    hStdOutput As Long
    hStdError As Long
End Type

Private Type SECURITY_ATTRIBUTES
    nLength As Long
    lpSecurityDescriptor As Long
    bInheritHandle As Long
End Type


Public Const NORMAL_PRIORITY_CLASS = &H20

Private Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As _
                            String, ByVal lpCommandLine As String, lpProcessAttributes As SECURITY_ATTRIBUTES, _
                            lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal bInheritHandles As Long, ByVal dwCreationFlags _
                            As Long, lpEnvironment As Any, ByVal lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO, _
                            lpProcessInformation As PROCESS_INFORMATION) As Boolean
Private Declare Function GetLastError Lib "kernel32" () As Long
Public Function SuperShell(ByVal App As String, ByVal commandline) As Integer

    Const CREATE_NO_WINDOW = &H8000000
    Dim startProc As Boolean
    Dim pclass As Long
    Dim sinfo As STARTUPINFO
    Dim pinfo As PROCESS_INFORMATION
    'Not used, but needed
    Dim sec1 As SECURITY_ATTRIBUTES
    Dim sec2 As SECURITY_ATTRIBUTES
    'Set the structure size
    sec1.nLength = Len(sec1)
    sec2.nLength = Len(sec2)
    'sinfo.cb = Len(sinfo)
    'Set the flags
    'sinfo.dwFlags = STARTF_USESHOWWINDOW
    'Set the window's startup position
    'sinfo.wShowWindow = start_size
    'Set the priority class
    'pclass = Priority_Class

    'Start the program                                                            CREATE_NO_WINDOW
    startProc = CreateProcess("e:\\project1.exe", commandline, sec1, sec2, False, 0, 0&, "e:\", sinfo, pinfo)

End Function
Public Sub testdll()
    Dim str
    str = "srwevbwert4th"    
    modSocket.SuperShell "e:\\Project1.exe", str
End Sub
 
如何在没有自己的dll的情况下找出系统错误代码(GetLastError)? 我想我已经看到了,但我找不到它。我记得它似乎导入了 另一个函数,我不记得是哪一个了。
 
#import "ntdll.dll"
        int RtlGetLastWin32Error();
        int RtlSetLastWin32Error (int dwErrCode);
#import


 
好了,就这样吧。谢谢。(笑)。
 

你好

为什么这个历史文件在MT的图表上没有显示出来?

附加的文件:
 

在DLL中,有必要知道传递的文本信息的大小。比方说,在MKL5中,这是由sizeof()完成的。

在MKL4中通过StringLen()进行操作是否正确?它怎么会是正确的呢?

p.s. 对发送第三个参数感兴趣,请点击:http://msdn.microsoft.com/en-us/library/aa365747(v=vs.85).aspx

 
Heroix:

在DLL中,有必要知道传递的文本信息的大小。比方说,在MKL5中,这是由sizeof()完成的。

在MKL4中通过StringLen()进行操作是否正确?它怎么会是正确的呢?

p.s. 对发送第三个参数感兴趣,请点击:http://msdn.microsoft.com/en-us/library/aa365747(v=vs.85).aspx

当然,你可以。这里 有在MQL4中使用此函数的例子。