从MT5调用命名管道dll。如何? - Page 2
2 页面的第 524 页 FirstFirst 1234 上一个上一个
Results 11 to 20 of 31

Thread: 从MT5调用命名管道dll。如何?

  1. #11

    Quote Originally Posted by ;
    如果我的假设是正确的那么你可以继续尝试以同样的方式全年去做,并且无处可去。我链接的文章展示了如何实现一个mql5类,它将直接处理kernel32.dll管道调用等等。
    Investeo也写了这篇文章:
    http://www.mql5.com/en/articles/249这就是我通过DLL获得简单添加功能的地方。这个DLL只是来自命名空间Testme,它编译成Testme.dll。从MT5调用该自定义DLL。我觉得我在做同样的事情,但显然不是。那篇文章证明它是可能的,而且相对简单。我想我只是错过了一些小事。
    Quote Originally Posted by ;
    无论是因为.net dll的不同还是不同,你应该尝试直接在mql5中处理管道处理,而不是卡在当前不能导入有问题的dll的路障中。
    我不想使用本机MQL45代码来打开和使用管道。我最终还是需要在最大程度上使用C#,所以我更喜欢从头开始使用它。我确实尝试过这条路线,但无法使用导出的kernel32.dll函数使其工作。相信我,我尝试过,试过......原始问题仍然存在:所以我的整体问题是如何正确调用我的SendString(字符串someParameter)?

  2. #12
    好的,从我读到你的回复和我读到的链接.....听起来像你没有正确实施罗伯特giesecke解决方法。我猜你刚刚复制了testme示例并在某处修改了robert文件,但实际上并没有正确设置它。如果我错了,请忽略以下内容:检查您是否正确遵循了此处的说明
    http://sites.google.com/site/robertg...-does-it-work-。看来你有两个选择。加载他已经设置的默认模板,你可以只填写空白,或者你必须实际编辑你的.net项目的一些内容,以确保他的狗屎运行并在编译时改变你的项目标志。我会考虑使用他的模板开始一个新项目,看看是什么,然后尝试将现有代码中的粘贴复制到此模板中。他的模板自动包含在项目中的任何文件显然是将函数导出为非托管代码的关键。编辑:删除示例...从原始链接加倍/编辑在一天结束时我不明白为什么你这么不愿意简单地让mql5直接调用kernel32管道函数....在我看来你是只需插入更多的代码和步骤,坚持导入.net库,然后最终处理管道函数调用。当mql5代码被解释时(或者mt5处理mql脚本)可能与mql5将数据发送到.net lib一样快或者更快,该.net lib将未管理的代码转换为托管代码然后具有。 net解释托管代码然后最终处理管道函数调用。我仍然只是吐痰,因为这很有趣,所以请随意忽略我。

  3. #13

    Quote Originally Posted by ;
    听起来像你没有正确实施罗伯特giesecke解决方法。我猜你刚刚复制了testme示例并在某处修改了robert文件,但实际上并没有正确设置它。
    你知道,这很有可能!!我已经完成了这么多次重做,包括创建我可能错过了一些新项目。我会回去看一看。我不得不休息一天。我结果非常结果,并且无法客观地看待它。至于使用.net的“为什么”,我希望以后能够使用.net。 MT5并不是我计划使用的唯一应用程序。通过DLL在.net中编写/实现它使我更接近平台中立。这样,我可以使用MT4,MT5,TradeStation,NinjaTrader,PAMM账户等。

  4. #14

    Quote Originally Posted by ;
    你知道,这很有可能!!我已经完成了这么多次重做,包括创建我可能错过了一些新项目。我会回去看一看。我不得不休息一天。我结果非常结果,并且无法客观地看待它。至于使用.net的“为什么”,我希望以后能够使用.net。 MT5并不是我计划使用的唯一应用程序。通过DLL在.net中编写/实现它使我更接近平台中立。这样,我可以使用MT4,MT5,TradeStation,NinjaTrader,......
    我听到你了。到过那里。就这个项目而言,你仍然可以更好地实现一个基本的c 管道处理DLL,你可以使用任何支持dll导入的平台....但是,就能够做任何你想做的事情而言。任何平台的网络库然后肯定,你将不得不找到目前正在破坏的地方。如果我是你,我会先忘记罗伯特解决方案并尝试编写自己的桥梁/包装器。实际上,我甚至不确定这是否必要。你可以通过编写一个完全编译为非托管代码的基本管道处理.net库来逃脱。我相信当你试图变得棘手并且使用不在非托管asm和.net托管字节码之间传输的类和其他更高级代码概念时,你只需要处理从非托管到托管的桥接代码。我认为它类似于读取3个字节,然后做一些整形,将3个rgb值转换为一个整数颜色值。它只是将数据从一个州转移到另一个州。在这种情况下,它非常像只是在c 下编译代码,只是你碰巧使用.net编译器。你应该有这样做的一个裂缝。编写基本的管道处理DLL并将其设置为将整个事件编译为无人管理。我怀疑这将开箱即用,并且在这种情况下所有其他的解决方法都是不必要的,因为dll只是一个基本的管道处理dll,几乎没有“绒毛”。

  5. #15
    嗯,猜它没有成功。有趣的是,没有其他人发表过任何想法,只是我在猜测中撒谎。你必须在你的.net dev'ing中有点孤独,至少在进行交易方面。

  6. #16
    我还没有机会继续努力。我也很惊讶没有其他人插话。

  7. #17
    1附件你好Jason,你试过编组吗? PHP代码:<code> <span style =“color:#000000”> <span style =“color:#0000BB”> </span> <span style =“color:#007700”>#91; </span> <span style =“color:#0000BB”> DllExport </span> <span style =“color:#007700”>(</span> <span style =“color:#DD0000”>“SendString”</span> <span style =“color:#007700”>,</span> <span style =“color:#0000BB”> CallingConvention </span> <span style =“color:#007700”> = </span> <span style =“color:#0000BB”> CallingConvention </span> <span style =“color:#007700”>。</span> <span style =“color:#0000BB”> StdCall </span> <span style = “color:#007700”>)#93;

    publicstatic </span> <span style =“color:#0000BB”> voidSendString </span> <span style =“color:#007700” >(#91; </span> <span style =“color:#0000BB”> MarshalAs </span> <span style =“color:#007700”>(</span> <span style =“color:#0000BB “> UnmanagedType </span> <span style =”color:#007700“>。</span> <span style =”color:#0000BB“> LPWStr </span> <span style =”color:#007700“> )#9 3; </span> <span style =“color:#0000BB”> stringargs </span> <span style =“color:#007700”>)
    {
    ....... .......
    ..............
    </span> <span style =“color:#0000BB”> </span> </span> </code>此外,ILDASM说什么?这就是我所看到的..(VS 2010,.NET 3.5)祝你好运chriz
    https://www.histoforex.com/cryptocur...trendline.html

  8. #18
    Chriz,我不情愿地在这里暴露我对C#的新意。我从未使用过ILDASM。我已经在许多文章中看到过它,但还没有了解它。它在待办事项清单上,但还不够高,不能阻止我当前项目的开发。我希望本周末可以在这个项目上投入几个小时。我已经尝试了你列出的指令,MT5仍然给出了相同的错误信息。我没有使用MarshalAs功能。我会试试看。如果确实有效,我的下一个问题是如何传递其他数据类型,如double或int。我希望数组将成为他们自己和对象的野兽。从一开始,我只想要那些简单的数据类型。

  9. #19

    Quote Originally Posted by ;
    Chriz,我不情愿地在这里暴露我对C#的新意。我从未使用过ILDASM。我已经在许多文章中看到过它,但还没有了解它。它在待办事项清单上,但还不够高,不能阻止我当前项目的开发。我希望本周末可以在这个项目上投入几个小时。我已经尝试了你列出的指令,MT5仍然给出了相同的错误信息。我没有使用MarshalAs功能。我会试试看。如果确实有效,我的下一个问题是如何...
    我认为已经发布了所有这些链接并讨论了主要问题,但不久前我写了这篇简短易懂的摘要
    http://vb6-to-csharp.blogspot.com/20...etatrader.html,如果我自己开始做这件事。 (我还没有)。请报告它是如何发生的!

  10. #20
    快速更新:我正在设置一个GitHub点,这样我就可以发布整个解决方案,人们可​​以看到发生的变化。完成后,我将继续测试/调试此项目

发布权限

  • 您不可发布新主题
  • 您不可回复
  • 您不可发布附件
  • 您不可编辑您的帖子
  •  
  • BB代码是打开的
  • 表情符号是打开的
  • [IMG]代码是打开的
  • [视频]代码是打开的
  • HTML代码是关闭的
histoforex网站使用cookie 文字跟踪
histoforex网站使用cookie 文字跟踪,某些设定已经固定。您可以点击此处阅读我们的Cookie使用说明。 请点击右键接受我们的cookies。如果您选择继续使用histoforex网站,我们将认为您接受我们的cookies。