MT4 के लिए नामित पाइप्स
पेज 1 का 535 1 2 3 ... पिछलापिछला
Results 1 to 10 of 41

Thread: MT4 के लिए नामित पाइप्स

  1. #1
    नवागत JoePass's Avatar
    प्रविष्टियाँ
    10
    एमटी 4 से नामांकित पाइप्स को किसी अन्य प्रोग्राम के साथ कम्युनिस्ट करने के बारे में किसी ने पूछा, इसलिए यहां इंटरफ़ेस और कुछ नमूना कोड है। यह केवल MQL4 का उपयोग कर एक DLL मुक्त समाधान है। यह माना जाता है कि आप पहले से ही नामित पाइप से परिचित हैं। यदि आप नहीं हैं, तो आप उनके बारे में पढ़ सकते हैं
    http://msdn.microsoft.com/en-us/libr...80(VS.85).aspx

    मुझे वास्तव में इसे एक पुस्तकालय में बनाना चाहिए, लेकिन मेरे पास अभी समय नहीं है। अगर कोई ऐसा करना चाहता है, तो स्वतंत्र महसूस करें।

    पहला इंटरफ़ेस:
    Inserted Code string PipeNamePrefix=\\\\.\\pipe\\; int BufferSize = 256; #define PIPE_ACCESS_INBOUND 1 #define PIPE_ACCESS_OUTBOUND 2 #define PIPE_ACCESS_DUPLEX 3 #define PIPE_TYPE_BYTE 0 #define PIPE_TYPE_MESSAGE 4 #define PIPE_READMODE_BYTE 0 #define PIPE_READMODE_MESSAGE 2 #define PIPE_WAIT 0 #define PIPE_NOWAIT 1 #define INVALID_HANDLE_VALUE 0xffffffff #define GenericRead 0x80000000 #define GenericWrite 0x40000000 #define OPEN_EXISTING 3 extern string PipeName=MetaTrader; int PipeHandle = INVALID_HANDLE_VALUE; int Buffer#91;64#93;; /4 bytes/int * 64 = 256 #import kernel32.dll int CreateNamedPipeA(string pipeName, int openMode, int pipeMode, int maxInstances, int outBufferSize, int inBufferSize, int defaultTimeOut, int security ); int WaitNamedPipeA( string lpNamedPipeName, int nTimeOut ); bool PeekNamedPipe( int pipeHandle, int buffer#91;#93;, int bufferSize, int bytesRead#91;#93;, int totalBytesAvail#91;#93;, int bytesLeftThisMessage#91;#93; ); int CreateFileA( string name, int desiredAccess, int SharedMode, int security, int creation, int flags, int templateFile ); int WriteFile( int fileHandle, int buffer#91;#93;, int bytes, int numOfBytes#91;#93;, int overlapped ); int ReadFile( int fileHandle, int buffer#91;#93;, int bytes, int numOfBytes#91;#93;, int overlapped ); int CloseHandle( int fileHandle ); int GetError(); #import To open the pipe as a client, do the following:

    सम्मिलित कोड FullPipeName = PipNamePrefix पाइपनाम; अगर (पाइपहैंडल == INVALID_HANDLE_VALUE) {अगर (WaitNamedPipeA (FullPipeName, 1) == 0) {//प्रिंट (कोई पाइप उपलब्ध नहीं है); वापसी; } पाइपहैंडल = CreateFileA (FullPipeName, GenericRead | GenericWrite, 0, 0, OPEN_EXISTING, 0, 0); प्रिंट (प्रतीक) (: पाइपहैंडल =, पाइपहैंडल); अगर (पाइपहैंडल == INVALID_HANDLE_VALUE) {प्रिंट (पाइप ओपन फेल); वापसी; }} पाइप से पढ़ने के लिए थोड़ा मुश्किल है। आप सीधे तार में नहीं पढ़ सकते हैं, इसलिए मैं एक अंतर सरणी में पढ़ता हूं, फिर सरणी को स्ट्रिंग में परिवर्तित करता हूं।
    Inserted Code ReadFile( PipeHandle, Buffer, BufferSize, bytesRead, 0 ); message = StringFromBuffer(bytesRead#91;0#93;); string StringFromBuffer(int length) { string message = ; for ( int i = 0; i lt; length; i ) { int c = Buffer#91;i4#93;; int off = i % 4; int shift = 0; if ( off == 1 ) shift = 8; else if ( off == 2 ) shift = 16; else if ( off == 3 ) shift = 24; c = (c gt;gt; shift) 0xff; message = message CharToStr( c ); } return( message ); } And to write to the pipe:
    सम्मिलित कोड CopyToBuffer (orderMessage); परिणाम = WriteFile (पाइपहैंडल, बफर, बफर, numOfBytes, 0); void CopyToBuffer (स्ट्रिंग संदेश) {के लिए (int i = 0; मैं lt; 64; i ) बफर # 91; i # 93; = 0; for (i = 0; i lt; StringLen (message); i ) {int off = i% 4; int shift = 0; अगर (बंद == 1) पारी = 1; और अगर (ऑफ == 2) शिफ्ट = १६; अगर (बंद == 3) पारी = २४; बफर # 91; मैं4 # 93; | = स्ट्रिंगरगेट (संदेश, i) लेफ्टिनेंट; लेफ्टिनेंट; खिसक जाना; }}

  2. #2
    4X: बहुत बहुत धन्यवाद - मुझे पता है कि इस तरह की चीज को विकसित होने और डिबग करने में थोड़ा समय लगता है। मैं देख सकता हूं कि प्रतिबंधित DDE इंटरफ़ेस के कारण इसका उपयोग VB (औरया VBA) और MT4 के बीच होगा। मैं एक निंजा ट्रेडर ऐप पर भी काम कर रहा हूं जो IPC का उपयोग कर सकता है। मैंने पाया है कि पुरानी शैली C को C # .NET में लागू करना एक वास्तविक चुनौती हो सकती है! धन्यवाद फिर से, केन। प्रश्न: बफर [i4] | = स्ट्रिंगग्रेटर (संदेश, i) लेफ्टिनेंट; लेफ्टिनेंट; खिसक जाना; मैं सी सिंटैक्स को समझने के लिए पर्याप्त नहीं हूं कि ये 2 ऑपरेटर क्या करते हैं: = = ??? ओर्टिंग (अनन्य) होना चाहिए; लेफ्टिनेंट; ???

  3. #3
    नवागत JoePass's Avatar
    प्रविष्टियाँ
    10

    Quote Originally Posted by ;
    प्रश्न: बफर [i4] | = स्ट्रिंगग्रेटर (संदेश, i) लेफ्टिनेंट; लेफ्टिनेंट; खिसक जाना; मैं सी सिंटैक्स को समझने के लिए पर्याप्त नहीं हूं कि ये 2 ऑपरेटर क्या करते हैं: = = ??? ओर्टिंग (अनन्य) होना चाहिए; लेफ्टिनेंट; ???
    हां इसमें काफी काम आया। x | = y, x = x के समान है और x और y का एक बिटवाइस OR है। x लेफ्टिनेंट; लेफ्टिनेंट; y एक बिट्स द्वारा छोड़ी गई पाली है। तो 1 लेफ्टिनेंट; लेफ्टिनेंट; 8 256 है। आप यहाँ उन दोनों के बारे में अधिक पढ़ सकते हैं:
    http://book.mql4.com/basics/expressions

  4. #4
    अरे 4X: मुझे वास्तव में यह काम करने के लिए मिला है। एक्सेल से एमटी 4 में डेटा भेजना। मुझे यह पता लगाने में कुछ समय लगा कि आप जो कर रहे हैं, वह सब कुछ है। मैंने सोचा कि पहले यह 1 बाइट में अधिक डेटा स्टोर करने का कुछ चतुर तरीका था! ; =)

  5. #5
    नवागत JoePass's Avatar
    प्रविष्टियाँ
    10
    आपके लिए अच्छा है, उम्मीद है कि यह आपको कुछ पिप्स बना देगा। हां, कोड मूल रूप से रीड और राइट कॉल को पास करने के लिए 4 अक्षरों (8 बिट्स) को एक इंट (32 बिट्स) में पैक करता है। इसका कारण यह है कि मैं सीधे कॉल के साथ काम करने के लिए तार नहीं प्राप्त कर सका, इसलिए मुझे एक स्तर नीचे जाना पड़ा।

  6. #6
    नवागत chami61's Avatar
    प्रविष्टियाँ
    15

    Quote Originally Posted by ;
    अरे 4X: मुझे वास्तव में यह काम करने के लिए मिला है। एक्सेल से एमटी 4 में डेटा भेजना। मुझे यह पता लगाने में कुछ समय लगा कि आप जो कर रहे हैं, वह सब कुछ है। मैंने सोचा कि पहले यह 1 बाइट में अधिक डेटा स्टोर करने का कुछ चतुर तरीका था! ; =)
    हैलो Kenz, आप स्रोत कोड या इसके कुछ हिस्सों को साझा कर सकते हैं? मैं एक ही काम करने की कोशिश कर रहा हूँ और सभी मुझे मिल रहे हैं बंद कर दिया गया है क्षुधा और सभी दुर्घटनाओं .. अग्रिम धन्यवाद।

  7. #7
    सदस्य miyw1996's Avatar
    प्रविष्टियाँ
    57
    संदर्भ कोड का एक और उत्कृष्ट टुकड़ा। 4xCoder साझा करने के लिए धन्यवाद। =) मोड्स, क्या हम इसे एक चिपचिपा के रूप में ले सकते हैं?

  8. #8
    नवागत Pidipidi's Avatar
    प्रविष्टियाँ
    1

    Quote Originally Posted by ;
    एमटी 4 से नामांकित पाइप्स को किसी अन्य प्रोग्राम के साथ कम्युनिस्ट करने के बारे में किसी ने पूछा, इसलिए यहां इंटरफ़ेस और कुछ नमूना कोड है। यह केवल MQL4 का उपयोग कर एक DLL मुक्त समाधान है। यह माना जाता है कि आप पहले से ही नामित पाइप से परिचित हैं। यदि आप नहीं हैं, तो आप उनके बारे में पढ़ सकते हैं
    http://msdn.microsoft.com/en-us/libr...80(VS.85).aspxमुझे वास्तव में इसे एक पुस्तकालय में बनाना चाहिए, लेकिन मेरे पास अभी समय नहीं है। अगर कोई ऐसा करना चाहता है, तो स्वतंत्र महसूस करें। पहला इंटरफ़ेस: [कोड] स्ट्रिंग ...
    हाय 4xCoder, कोड साझा करने के लिए बहुत बहुत धन्यवाद। मैं excel से MT4 indior में एक पूर्णांक मान निर्यात करने के लिए नामित पाइप का उपयोग करना चाह रहा हूं। दरअसल, मेरे पास एमटी 4 से आयात (ओ, एच, एल, सी) का उपयोग करके एक्सेल पर एक जटिल गणना है। उन जटिल आह्वान का परिणाम 3 मानों ( 1, -1,0) में से एक के साथ एक पूर्णांक चर होगा। मुझे एमटी 4 इंडियोर का उपयोग करके एक्सेल से इस मूल्य को पढ़ने की आवश्यकता है ताकि मैं लिमी ट्रेडों की पुष्टि कर सकूं। क्या आप साझा कर सकते हैं कि ऐसा कैसे किया जाए, तो एक उदाहरण बहुत उपयोगी होगा। मैं इस 1 मिनट TF का उपयोग करने की योजना बना रहा हूं। अग्रिम धन्यवाद, चीयर्स, Way2Freedom

  9. #9
    नवागत matwls's Avatar
    प्रविष्टियाँ
    5
    हाय ऑल, गुड डे, इस कोड के लिए DLL फ़ाइल बनाने में कोई सफलता। मैं अभी भी नहीं जानता कि इसे बनाने के लिए क्या करना चाहिए। मेरे पास एक डेल्फी एक्स है और अभी भी सोच रहा है कि कोड को कैसे प्राप्त किया जाए। क्या यहां कोई भी महान कोडर हमें कम से कम कदम दिखा सकता है कि यह कैसे करना है ?? तुम लोगों से सुनने के लिए उत्सुक, एस एफ

  10. #10
    सदस्य ameibol63's Avatar
    प्रविष्टियाँ
    40

    Quote Originally Posted by ;
    इस कोड के लिए DLL फ़ाइल बनाने में कोई सफलता। मैं अभी भी नहीं जानता कि इसे बनाने के लिए क्या करना चाहिए। मेरे पास एक डेल्फी एक्स है और अभी भी सोच रहा है कि कोड को कैसे प्राप्त किया जाए।
    डेल्फी (और FPC में) यह सब अच्छी तरह से TPipeStream द्वारा लपेटा गया है और यह बिल्कुल किसी भी अन्य स्ट्रीम की तरह व्यवहार करता है, आपको सीधे कच्ची विंडोज़ एपीआई के साथ गड़बड़ करने की ज़रूरत नहीं है यदि आप डेल्फी (या एफपीसी (लाजर) के साथ काम कर रहे हैं।

पेज 1 का 535 1 2 3 ... पिछलापिछला

लेखन की अनुमति देना

  • अब आप यहाँ नए सूत्र लिख सकते हैं
  • आप उत्तर नहीं लिख सकते हैं
  • आप कोई अटैचमेंट नहीं लगा सकते हैं
  • आप अपने लेख को एडिट नहीं कर सकते हैं
  •  
  • बी बी कोड चालू है
  • स्माइली चालू हैं
  • [IMG] कोड चालू है
  • [VIDEO] कोड चालू है
  • HTML कोड बंद है
कूकी नीति:
asjforex.com वेबसाइट कूकीज का उपयोग करती है और आप इस वेबसाइट का उपयोग जारी रख कर इस से सहमत हैं। अधिक जानकारी के लिए कृपया 'कूकी प्रकटीकरण'पढ़ें।