64-разрядные выпуски Windows Server могут выполнять адресацию 16 терабайт виртуальной памяти с помощью плоской модели адресации. Виртуальная память разделяется на равные части между виртуальными адресными пространствами для приложений и операционной системы. Увеличение адресного пространства виртуальной памяти в 64-разрядной среде может благоприятно сказаться даже на работе 32-разрядных приложений. Например, хотя 32-разрядное приложение по-прежнему ограничено 4 ГБ виртуальной памяти, ему больше не требуется разделять это пространство с операционной системой. В результате возникает фактическое расширение виртуальной памяти.
... VB(고대)를 실행하는 SCADA 시스템에서 소켓으로 데이터를 보내는 작업이 있습니다. 이마에 구현하려고했습니다. API를 사용하여 Vb에서 직접 데이터를 보내는 것이 작동했지만 한 가지 문제가 있습니다.
소켓에 대한 연결이 이루어지지 않으면 VB는 응답을 기다리고 잠시 속도가 느려집니다(중요함).
VB에서 별도의 쓰레드를 만들고 싶었지만 VB가 AddressOf를 이해하지 못하는 것으로 나타났습니다.
VB가 원격 소켓의 응답을 기다리는 것으로 예를 들어 1초를 ping(LAN의 원격 소켓)에 대한 TTL과 유사하게 어떻게 설명할 수 있습니까?
다른 옵션을 시도했습니다. C ++ 빌더에서 소켓으로 보낼 콘솔 응용 프로그램을 작성했습니다.
나는 그것을 실행하려고했고 작동합니다.
또한 VB에서 별도의 프로세스를 만들려고 했습니다. 실행기는 시작되지만 데이터를 보내지 않습니다.
가능한 곳에 퍼팅 디버그 시작 cout << << endl;
내 손으로 exe를 호출하면 WsaStartUp이 0을 채우고 0에 연결하면 send가 전송된 데이터 양을 반환합니다.
그리고 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
추신: 검색 및 Google에서 기성품 NS를 찾을 수조차 없습니다. .dll을 FANN과 연결했는데 매우 자신 있게 작동하지만 .dll이 없으면 좋겠습니다.
당신이 원하는 것을 상상합니까? 일반적으로 작성된 코드를 OOP에서 비SI로 이식하시겠습니까? 아무도 없을 거라 생각합니다. 특히 dll을 통해 더 빠릅니다.
5ke를 요청하십시오. 그들은 이미 거기에서 말을 더듬었습니다.
동지, 나는 스스로를 호출하는 표시기를 발견했습니다. 여기에 코드의 일부가 있습니다(표시기 자체는 예고편에 있음).
테스터에서는 Expert Advisor의 iCustom()을 통해 올바르게 호출할 수 없습니다. 다음과 같은 일이 발생합니다.

iCustom()은 Expert Advisor에서 다음과 같이 보입니다.
테스터의 TF가 EA 설정의 TF와 일치하는 경우에만 올바르게 표시됩니다.
TF 테스터에 관계없이 올바르게 표시되도록 호출을 올바르게 구성하는 방법을 알려주십시오.
아니면 인디케이터 코드의 특성으로 인해 불가능한가요?
Microsoft의 기사를 읽었습니다. http://technet.microsoft.com/ru-ru/library/dd630755(v=office.12).aspx
여기에서 인용한 내용이 있습니다.
64-разрядные выпуски Windows Server могут выполнять адресацию 16 терабайт виртуальной памяти с помощью плоской модели адресации. Виртуальная память разделяется на равные части между виртуальными адресными пространствами для приложений и операционной системы. Увеличение адресного пространства виртуальной памяти в 64-разрядной среде может благоприятно сказаться даже на работе 32-разрядных приложений. Например, хотя 32-разрядное приложение по-прежнему ограничено 4 ГБ виртуальной памяти, ему больше не требуется разделять это пространство с операционной системой. В результате возникает фактическое расширение виртуальной памяти.
MT4에서 64비트 OS에서 4GB 메모리를 지정할 수 있다는 것이 밝혀졌습니다.
나는 나 자신을 확인할 수 없다. 그렇게 많은 메모리를 넣을 곳이 없습니다.
안녕하세요
소켓 질문입니다.
... VB(고대)를 실행하는 SCADA 시스템에서 소켓으로 데이터를 보내는 작업이 있습니다. 이마에 구현하려고했습니다. API를 사용하여 Vb에서 직접 데이터를 보내는 것이 작동했지만 한 가지 문제가 있습니다.
소켓에 대한 연결이 이루어지지 않으면 VB는 응답을 기다리고 잠시 속도가 느려집니다(중요함).
VB에서 별도의 쓰레드를 만들고 싶었지만 VB가 AddressOf를 이해하지 못하는 것으로 나타났습니다.
VB가 원격 소켓의 응답을 기다리는 것으로 예를 들어 1초를 ping(LAN의 원격 소켓)에 대한 TTL과 유사하게 어떻게 설명할 수 있습니까?
다른 옵션을 시도했습니다. C ++ 빌더에서 소켓으로 보낼 콘솔 응용 프로그램을 작성했습니다.
나는 그것을 실행하려고했고 작동합니다.
또한 VB에서 별도의 프로세스를 만들려고 했습니다. 실행기는 시작되지만 데이터를 보내지 않습니다.
가능한 곳에 퍼팅 디버그 시작 cout << << endl;
내 손으로 exe를 호출하면 WsaStartUp이 0을 채우고 0에 연결하면 send가 전송된 데이터 양을 반환합니다.
그리고 VB에서 시작하면 WsaStartUp은 0에서 작동하고 -1에서 연결하고 10038에서 각각 보냅니다.
나는 무엇이 잘못되었는지 이해하지 못한다.
다음은 VB의 코드입니다.
여보세요
이 히스토리 파일이 MT 차트에 표시되지 않는 이유는 무엇입니까?
DLL에서 전송된 텍스트 정보의 크기를 학습할 필요가 있습니다. sizeof()가 MKL5에서 이 작업을 수행한다고 가정해 보겠습니다.
StringLen()을 통해 MKL4에서 수행하는 것이 맞습니까? 어떻게 정확할까요?
ps 여기에 세 번째 매개변수를 보내는 데 관심이 있습니다. http://msdn.microsoft.com/en-us/library/aa365747(v=vs.85).aspx
DLL에서 전송된 텍스트 정보의 크기를 학습할 필요가 있습니다. sizeof()가 MKL5에서 이 작업을 수행한다고 가정해 보겠습니다.
StringLen()을 통해 MKL4에서 수행하는 것이 맞습니까? 어떻게 정확할까요?
ps 여기에 세 번째 매개변수를 보내는 데 관심이 있습니다. http://msdn.microsoft.com/en-us/library/aa365747(v=vs.85).aspx