更新MQL4 600和命名管道 - 页 3 1234 新评论 bisewski 2014.02.15 23:00 #21 好吧,如果我的问题,当我改变到模式W unicode是连接管道在侧MT4,所以我的东西,字符串\\\\.\pipe\mypipe不再是一个简单的字符串,但包含空值,像德FMIC说。这就是为什么我不能在我的vb.net端连接,因为当我使用相同的字符串\\\\.\pipe\mypipe时没有找到,我收到错误2。我尝试用StringToCharArray转换字符串,但管道连接出错。有意义吗?谢谢 bisewski 2014.02.15 23:13 #22 嗯,我错了,当然......否则,如果我在mt4端使用A ansi模式时,我的vb.net端也将无法连接,但它可以...... bisewski 2014.02.17 12:39 #23 我使用这行代码来显示我所有打开的管道。 Dim listOfPipes As [String]() = System.IO.Directory.GetFiles("\\.\pipe\") 而我的管道就在那里。所以mt4的unicode模式 "W "正在创建管道并等待连接。如果我可以在同一个mt4端创建一个管道客户端,我可以测试... bisewski 2014.02.17 14:49 #24 我不知道该怎么做...... Alain Verleyen 2014.02.17 15:26 #25 bisewski: 我不知道该怎么做...... 你能不能把你的情况总结一下,因为我觉得不是很清楚。 bisewski 2014.02.17 16:28 #26 我在msdn论坛上发了一个帖子,因为我觉得问题出在我的vb.net方面。 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程序中使用ansi模式时,我可以连接管道,但我只收到第一个字母。所以我改成unicode模式,我知道我不能连接......我收到错误2。 所以我认为我的问题是我的vb.net代码,而不是我的mql4模式。 谢谢所有的帮助... oscarin 2014.06.10 19:19 #27 如果有人在MT4 v600中仍有管理命名管道的 问题,这是我解决的方法。将 CreateNamedPipeA 和 CreateFileA 改为 CreateNamedPipeW 和 CreateFileW改变ReadFile和WriteFile(Buffer)中的声明,因此,我可以使用CharArrays(每个字符一个字节)。int WriteFile(int FileHandle, uchar & Buffer[], int BufferLength, int & BytesWritten[], int PassAsZero); int ReadFile(int FileHandle, uchar & BufferPtr[], int BufferLength, int & BytesRead[], int PassAsZero);使用Char数组在服务器和客户端之间进行通信。服务器。string ReadBuffer = ""; uchar Buff_in[200]; int BytesRead[1] = {0}; ReadFile(glbPipe[PipeIndex], Buff_in, 200, BytesRead, 0); ReadBuffer = CharArrayToString(Buff_in,0,BytesRead[0]); if (BytesRead[0] > 0) { strReturnValue = StringConcatenate(strReturnValue, ReadBuffer); TotalBytesRead += BytesRead[0]; } 客户端。uchar Mess_char[]; StringToCharArray(Message, Mess_char,0); WriteFile(PipeHandle, Mess_char, StringLen(Message), BytesWritten, 0); Ziheng Zhuang 2014.06.11 03:48 #28 谢谢Oscarin的总结。 bisewski 2014.06.11 11:12 #29 谢谢sr... [删除] 2014.07.08 09:12 #30 oscarin:如果有人在MT4 v600中仍有管理命名管道的问题,这是我解决的方法。将 CreateNamedPipeA 和 CreateFileA 改为 CreateNamedPipeW 和 CreateFileW改变ReadFile和WriteFile(Buffer)中的声明,因此,我可以使用CharArrays(每个字符一个字节)。使用Char数组在服务器和客户端之间进行通信。服务器。客户端。 你在什么代码中进行了所述的修改?有谁知道这个吗?我很想在MT4 600+中开始使用命名的点数,尽管我还没有找到一个有效的解决方案。非常感谢任何帮助! 1234 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
好吧,如果我的问题,当我改变到模式W unicode是连接管道在侧MT4,所以我的东西,字符串\\\\.\pipe\mypipe不再是一个简单的字符串,但包含空值,像德FMIC说。这就是为什么我不能在我的vb.net端连接,因为当我使用相同的字符串\\\\.\pipe\mypipe时没有找到,我收到错误2。
我尝试用StringToCharArray转换字符串,但管道连接出错。
有意义吗?谢谢
我使用这行代码来显示我所有打开的管道。
Dim listOfPipes As [String]() = System.IO.Directory.GetFiles("\\.\pipe\")
而我的管道就在那里。所以mt4的unicode模式 "W "正在创建管道并等待连接。如果我可以在同一个mt4端创建一个管道客户端,我可以测试...
我不知道该怎么做......
我在msdn论坛上发了一个帖子,因为我觉得问题出在我的vb.net方面。
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程序中使用ansi模式时,我可以连接管道,但我只收到第一个字母。所以我改成unicode模式,我知道我不能连接......我收到错误2。
所以我认为我的问题是我的vb.net代码,而不是我的mql4模式。
谢谢所有的帮助...
如果有人在MT4 v600中仍有管理命名管道的 问题,这是我解决的方法。
服务器。
客户端。
谢谢Oscarin的总结。
如果有人在MT4 v600中仍有管理命名管道的问题,这是我解决的方法。
服务器。
客户端。
你在什么代码中进行了所述的修改?
有谁知道这个吗?
我很想在MT4 600+中开始使用命名的点数,尽管我还没有找到一个有效的解决方案。非常感谢任何帮助!