Not: Arama ve Google ile hazır bir NS bile bulamıyorum, .dll'yi FANN ile bağladım, oldukça güvenli çalışıyor ama .dll olmadan istiyorum
Ne istediğini hayal ediyor musun? Normal olarak yazılan kodu OOP'den SI olmayana mı taşıyorsun? Sadece kimsenin olmayacağını düşünüyorum. Özellikle dll aracılığıyla daha hızlı olacaktır.
Yalnızca test cihazının TF'si EA ayarlarındaki TF ile eşleşirse doğru görüntülenir.
TF test cihazından bağımsız olarak doğru şekilde görüntülenmesi için çağrısını nasıl doğru bir şekilde oluşturacağımı söyle? Yoksa gösterge kodunun özelliklerinden dolayı bunu yapmak imkansız mı?
64-разрядные выпуски Windows Server могут выполнять адресацию 16 терабайт виртуальной памяти с помощью плоской модели адресации. Виртуальная память разделяется на равные части между виртуальными адресными пространствами для приложений и операционной системы. Увеличение адресного пространства виртуальной памяти в 64-разрядной среде может благоприятно сказаться даже на работе 32-разрядных приложений. Например, хотя 32-разрядное приложение по-прежнему ограничено 4 ГБ виртуальной памяти, ему больше не требуется разделять это пространство с операционной системой. В результате возникает фактическое расширение виртуальной памяти.
MT4'te 64 bit işletim sistemi altında 4 GB belleğe hitap etmenin mümkün olduğu ortaya çıktı?
Kendimi kontrol edemiyorum. Bu kadar hafızayı koyacak yer yok.
... VB (antik) çalıştıran bir SCADA sisteminden bir sokete veri göndermek için bir görev var. Alnına uygulanmaya çalışıldı. API'yi kullanarak doğrudan Vb'den veri göndermek çalıştı, ancak bir sorun var
Sokete bağlantı gerçekleşmezse, VB bir yanıt bekler ve bir süre yavaşlar (bu kritiktir)
VB'den ayrı bir iş parçacığı oluşturmaya çalışmak istedim, ancak VB'nin AddressOf'u anlamadığı ortaya çıktı.
VB'nin uzak bir soketten yanıt beklemesi, örneğin 1 saniye, ping için TTL'ye (LAN'da uzak soket) benzetilerek nasıl açıklanabilir?
Başka bir seçenek denedim: Sokete göndermek için C++ oluşturucusuna bir konsol uygulaması yazdım.
Çalıştırmaya çalıştım ve işe yarıyor.
Ayrıca VB'den ayrı bir süreç oluşturmaya çalıştı. yürütücü başlatılıyor ancak veri göndermiyor
Mümkün olan yere koyarak hata ayıklamaya başladı cout << << endl;
Elimle exe'yi çağırırsam, WsaStartUp 0'ı yerine getirir ve 0'a bağlanırsa, gönder'in aktarılan veri miktarını döndürdüğünü görüyorum
Ve VB'den başlarsam, WsaStartUp 0'da çalışır ve -1'de bağlanır, sırasıyla 10038'de gönderir.
Neyin yanlış olduğunu anlamıyorum.
İşte VB'den gelen kod
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
Kendi dll'niz olmadan sistem hata kodunu (GetLastError hangisi) nasıl öğrenebilirim? Sanırım gördüm ama bulamıyorum. Başka bir işlevin içe aktarılmış gibi göründüğünü hatırlıyorum, hangisi - hatırlamıyorum.
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
Not: Arama ve Google ile hazır bir NS bile bulamıyorum, .dll'yi FANN ile bağladım, oldukça güvenli çalışıyor ama .dll olmadan istiyorum
Ne istediğini hayal ediyor musun? Normal olarak yazılan kodu OOP'den SI olmayana mı taşıyorsun? Sadece kimsenin olmayacağını düşünüyorum. Özellikle dll aracılığıyla daha hızlı olacaktır.
5ke isteyin, zaten orada kekelediler.
Yoldaşlar, kendisini çağıran bir göstergeye rastladım, işte kodun bir kısmı (göstergenin kendisi fragmanda):
Test cihazında, Expert Advisor'dan iCustom() aracılığıyla doğru şekilde çağırmak mümkün değildir. İşte olanlar:

iCustom(), Expert Advisor'da şöyle görünür:
Yalnızca test cihazının TF'si EA ayarlarındaki TF ile eşleşirse doğru görüntülenir.
TF test cihazından bağımsız olarak doğru şekilde görüntülenmesi için çağrısını nasıl doğru bir şekilde oluşturacağımı söyle?
Yoksa gösterge kodunun özelliklerinden dolayı bunu yapmak imkansız mı?
Microsoft'tan bir makale okudum: http://technet.microsoft.com/ru-ru/library/dd630755(v=office.12).aspx
İşte oradan bir alıntı:
64-разрядные выпуски Windows Server могут выполнять адресацию 16 терабайт виртуальной памяти с помощью плоской модели адресации. Виртуальная память разделяется на равные части между виртуальными адресными пространствами для приложений и операционной системы. Увеличение адресного пространства виртуальной памяти в 64-разрядной среде может благоприятно сказаться даже на работе 32-разрядных приложений. Например, хотя 32-разрядное приложение по-прежнему ограничено 4 ГБ виртуальной памяти, ему больше не требуется разделять это пространство с операционной системой. В результате возникает фактическое расширение виртуальной памяти.
MT4'te 64 bit işletim sistemi altında 4 GB belleğe hitap etmenin mümkün olduğu ortaya çıktı?
Kendimi kontrol edemiyorum. Bu kadar hafızayı koyacak yer yok.
Tünaydın
Soket sorusu.
... VB (antik) çalıştıran bir SCADA sisteminden bir sokete veri göndermek için bir görev var. Alnına uygulanmaya çalışıldı. API'yi kullanarak doğrudan Vb'den veri göndermek çalıştı, ancak bir sorun var
Sokete bağlantı gerçekleşmezse, VB bir yanıt bekler ve bir süre yavaşlar (bu kritiktir)
VB'den ayrı bir iş parçacığı oluşturmaya çalışmak istedim, ancak VB'nin AddressOf'u anlamadığı ortaya çıktı.
VB'nin uzak bir soketten yanıt beklemesi, örneğin 1 saniye, ping için TTL'ye (LAN'da uzak soket) benzetilerek nasıl açıklanabilir?
Başka bir seçenek denedim: Sokete göndermek için C++ oluşturucusuna bir konsol uygulaması yazdım.
Çalıştırmaya çalıştım ve işe yarıyor.
Ayrıca VB'den ayrı bir süreç oluşturmaya çalıştı. yürütücü başlatılıyor ancak veri göndermiyor
Mümkün olan yere koyarak hata ayıklamaya başladı cout << << endl;
Elimle exe'yi çağırırsam, WsaStartUp 0'ı yerine getirir ve 0'a bağlanırsa, gönder'in aktarılan veri miktarını döndürdüğünü görüyorum
Ve VB'den başlarsam, WsaStartUp 0'da çalışır ve -1'de bağlanır, sırasıyla 10038'de gönderir.
Neyin yanlış olduğunu anlamıyorum.
İşte VB'den gelen kod
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 FunctionMerhaba
Bu geçmiş dosyası neden MT'deki grafikte görüntülenmiyor?
DLL'de aktarılan metin bilgisinin boyutunu öğrenmeye ihtiyaç vardır. Diyelim ki sizeof() bunu MKL5'te yapıyor.
Bunu MKL4'te StringLen() aracılığıyla yapmak doğru olur mu? Nasıl doğru olacak?
ps, üçüncü parametreyi buraya göndermekle ilgileniyor: http://msdn.microsoft.com/en-us/library/aa365747(v=vs.85).aspx
DLL'de aktarılan metin bilgisinin boyutunu öğrenmeye ihtiyaç vardır. Diyelim ki sizeof() bunu MKL5'te yapıyor.
Bunu MKL4'te StringLen() aracılığıyla yapmak doğru olur mu? Nasıl doğru olacak?
ps, üçüncü parametreyi buraya göndermekle ilgileniyor: http://msdn.microsoft.com/en-us/library/aa365747(v=vs.85).aspx