64-разрядные выпуски Windows Server могут выполнять адресацию 16 терабайт виртуальной памяти с помощью плоской модели адресации. Виртуальная память разделяется на равные части между виртуальными адресными пространствами для приложений и операционной системы. Увеличение адресного пространства виртуальной памяти в 64-разрядной среде может благоприятно сказаться даже на работе 32-разрядных приложений. Например, хотя 32-разрядное приложение по-прежнему ограничено 4 ГБ виртуальной памяти, ему больше не требуется разделять это пространство с операционной системой. В результате возникает фактическое расширение виртуальной памяти.
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
ZS: 検索してもググっても既製のNSが見つからない、FANN付きの.dllは結構使えるが、.dllなしが欲しいところだ
何をしたいのか、考えていますか?普通に書かれたOOPコードを過疎地のNSに移植するため?誰もやらないんじゃないですか?ましてや、DLLを通せばより速くなる。
5で頼めよ、もうそこで吃驚してるんだから。
同志たち、自分自身を呼び出すインジケータに出くわしました、ここでコードの一部です(インジケータ自体はトレーラーにあります)。
Expert Advisor から iCustom() を使用して正しく呼び出すことができません。これが、私たちの手に入るものです。

Expert AdvisorでのiCustom()は次のようになります。
テスターのTFとEAの設定のTFが同じ場合のみ、正しく表示されます。
テスターのTFに関係なく正しく表示されるように、その呼び方を正しくする方法をアドバイスしていただけませんか?
それとも、インジケーターコードの特殊性でできないのでしょうか?
マイクロソフトの記事を読む: http://technet.microsoft.com/ru-ru/library/dd630755(v=office.12).aspx
以下はその引用である。
64-разрядные выпуски Windows Server могут выполнять адресацию 16 терабайт виртуальной памяти с помощью плоской модели адресации. Виртуальная память разделяется на равные части между виртуальными адресными пространствами для приложений и операционной системы. Увеличение адресного пространства виртуальной памяти в 64-разрядной среде может благоприятно сказаться даже на работе 32-разрядных приложений. Например, хотя 32-разрядное приложение по-прежнему ограничено 4 ГБ виртуальной памяти, ему больше не требуется разделять это пространство с операционной системой. В результате возникает фактическое расширение виртуальной памяти.
64bitOSでMT4が4GBのメモリにアドレスできることが判明?
自分では確認できない。それだけのメモリーを置く場所がないのです。
こんにちは
ソケットについて質問です。
...VB(古代)を使用しているSCADAシステムから、ソケットにデータを送信するタスクがあります。VbからAPIを使って直接実装しようとしたのですが、一つ問題があります。
ソケットへの接続に失敗した場合、VBは応答を待っているため、時間がかかる(これは重要)
VBからシングルスレッドを作ろうと思ったのですが、VBはAddressOfを理解できないことが判明しました。
PingのTTLのようにリモートソケットからの応答を1秒待つ(リモートソケットがローカルにある)ことをVBで説明するにはどうすればよいでしょうか?
別の方法を試してみました:C++のビルダーで、ソケットに送信するコンソールアプリケーションを書きました。
実行を試したところ、うまくいきました。
そこで、VB.NETからスタンドアローンプロセスを作成することにしました。ランタイムは実行されますが、データは送信されません。
cout<< <<endl を使ってデバッグするようになりました。
手動でexeを起動すると、WsaStartUpが0で動作し、0に接続し、転送されたデータの数を返すことがわかります。
しかし、VBで起動すると、0ではWsaStartUpが動作し、-1ではconnect、10038ではそれぞれsendします。
どうしたんだろう?
以下は、VBからのコードです。
こんにちは
この履歴ファイルは、なぜMTのチャートに表示されないのですか?
DLLで、渡されたテキスト情報のサイズを知る必要がある。例えば、MKL5ではこれをsizeof()で行っているとします。
MKL4ではStringLen()で行うのが正しいのでしょうか?どうすれば正しいのでしょうか?
p.s. 第3のパラメータを送信することに興味がある方は、こちらをご覧ください: http://msdn.microsoft.com/en-us/library/aa365747(v=vs.85).aspx
DLLで、渡されたテキスト情報のサイズを知る必要がある。例えば、MKL5ではこれをsizeof()で行っているとします。
MKL4ではStringLen()で行うのが正しいのでしょうか?どうすれば正しいのでしょうか?
p.s. 第3のパラメータを送信することに興味がある方は、こちらをご覧ください: http://msdn.microsoft.com/en-us/library/aa365747(v=vs.85).aspx