좋아, 모드 W 유니코드로 변경할 때 내 문제가 MT4 측의 파이프를 연결하는 것이므로 \\\\.\\pipe\\mypipe 문자열은 더 이상 단순한 문자열이 아니라 de와 같은 null 값을 포함합니다. FMIC는 말했다. 동일한 문자열을 사용할 때 \\\\.\\pipe\\mypipe를 찾을 수 없고 오류 2가 표시되기 때문에 vb.net 측에서 연결할 수 없습니다.
StringToCharArray로 변환 문자열을 연결하려고 시도하지만 파이프 연결에 오류가 발생했습니다.
누군가 MT4 v600에서 명명된 파이프 를 관리하는 데 여전히 문제가 있는 경우 다음과 같이 해결했습니다.
CreateNamedPipeW 및 CreateFileW를 사용하여 CreateNamedPipeA 및 CreateFileA 변경
ReadFile 및 WriteFile(버퍼)의 선언을 변경하여 CharArray(문자당 1바이트)로 작업할 수 있습니다.
int WriteFile( int FileHandle, uchar & Buffer[], int BufferLength, int & BytesWritten[], int PassAsZero);
int ReadFile( int FileHandle, uchar & BufferPtr[], int BufferLength, int & BytesRead[], int PassAsZero);
좋아, 모드 W 유니코드로 변경할 때 내 문제가 MT4 측의 파이프를 연결하는 것이므로 \\\\.\\pipe\\mypipe 문자열은 더 이상 단순한 문자열이 아니라 de와 같은 null 값을 포함합니다. FMIC는 말했다. 동일한 문자열을 사용할 때 \\\\.\\pipe\\mypipe를 찾을 수 없고 오류 2가 표시되기 때문에 vb.net 측에서 연결할 수 없습니다.
StringToCharArray로 변환 문자열을 연결하려고 시도하지만 파이프 연결에 오류가 발생했습니다.
말이 됩니까? 감사해요
이 라인 코드를 사용하여 열린 모든 파이프를 보여줍니다.
Dim listOfPipes As [String]() = System.IO.Directory.GetFiles("\\.\pipe\")
그리고 내 파이프가 거기에 있습니다. 따라서 유니코드 모드 "W"를 사용하는 mt4는 파이프를 생성하고 연결을 기다리고 있습니다. 동일한 mt4 측에서 파이프 클라이언트를 생성할 수 있다면 테스트할 수 있습니다.
어떻게 해야할지 모르겠어...
문제가 내 vb.net 측에 있다고 생각하기 때문에 msdn 포럼에서 게시물을 엽니다.
http://social.msdn.microsoft.com/Forums/en-US/409d4a2d-0a88-4094-9f0c-403798a2ce3d/pipe-unicode-mode-not-connecting-like-ansi-mode?forum=vbgeneral
내 mt4 코드로 파이프를 생성할 수 있지만 연결하거나 호출할 수 있습니다.
vb.net 프로그램에서 si 모드를 사용하면 파이프를 연결할 수 있지만 첫 번째 문자만 수신됩니다. 그래서 유니코드 모드로 변경했는데 연결할 수 없다는 것을 알고 있습니다...오류 2가 나타납니다.
그래서 나는 내 ptoblem이 이제 내 vb.net 코드와 함께 있고 내 mql4를 모드화하지 않는다고 생각합니다.
모든 도우미에게 감사합니다 ...
누군가 MT4 v600에서 명명된 파이프 를 관리하는 데 여전히 문제가 있는 경우 다음과 같이 해결했습니다.
섬기는 사람:
고객:
요약해 주신 Oscarin에게 감사드립니다.
누군가 MT4 v600에서 명명된 파이프를 관리하는 데 여전히 문제가 있는 경우 다음과 같이 해결했습니다.
섬기는 사람:
고객:
어떤 코드에서 표시된 변경을 수행했습니까?
아무도 이것을 알고 있습니까?
아직 작동하는 솔루션을 찾을 수 없었지만 MT4 600+에서 명명된 핍으로 작업을 시작하고 싶습니다. 도움을 주시면 감사하겠습니다!