Problemy z PostMessageW w MQL4 - Strona 2
Strona 2 z 2 PierwszyPierwszy 12
Pokaż wyniki od 11 do 13 z 13

Wątek: Problemy z PostMessageW w MQL4

  1. #11
    Zainicjuj name2[] zerami przed skopiowaniem nazwy wskaźnika. Kopiujesz tylko znaki StringLen(nazwa wskaźnika). To jedna postać za mało. Musisz upewnić się, że ciąg w buforze jest zakończony znakiem . Zniekształcony bałagan, którego doświadczasz, to jakiś istniejący niezerowy znak w buforze, który jest następnie dołączany do nazwy twojego wskaźnika. Jeśli nie jest zainicjowana, przydzielona pamięć może zawierać wszystko. Oczywiście taki plik nie istnieje, stąd Twój błąd. ps: Jedna linijka więcej wystarczy. Widzieć
    https://www.mql5.com/en/docs/array/arrayinitializepps: Jeśli się nie mylę, powinieneś użyć PostMessageA() z StringToCharArray(). Widzę ciąg ANSI jako wynik
    https://www.mql5.com/en/docs/convert/stringtochararray. Proszę poprawić kogoś, jeśli się mylę. Nie używam kodu MQL4.5 (kompilacja 600 ).

  2. #12

    Cytat Zamieszczone przez ;
    ...Jeśli ktokolwiek może...pomóż mi rozwiązać...
    Więcej problemów. Z
    https://docs.mql4.com/mql4changesInicjowane są tylko zmienne globalne. W zmiennych lokalnych tylko ciągi są inicjowane niejawnie. To jest oficjalna dokumentacja twojego błędu inicjalizacji tablicy (zakładam, że kompilujesz z właściwością strict). Jest jeszcze jeden problem: Tablice lokalne są zwalniane przy wyjściu z bloku {}. Twoja tablica nazwa2[] musi zostać przeniesiona z zakresu funkcji do zakresu globalnego. W przeciwnym razie pamięć tablicy przechowująca nazwę wskaźnika może być już zwolniona, gdy terminal przetwarza swoją kolejkę wiadomości z wiadomością wysłaną przez PostMessage(). Ten błąd jest nieco ukryty przez twoją trzecią instrukcję sleep(), ale to tylko szczęście, że jeszcze nie doświadczyłeś awarii. Nawet jeśli przeniesiesz go do zasięgu globalnego, nadal musisz zainicjować go z wnętrza StartCustomIndicator(). Może zawierać nazwę wskaźnika z poprzedniego wywołania funkcji, którą należy nadpisać. Twoje pierwsze dwie instrukcje sleep() są całkowicie przestarzałe. Jeśli chcesz załadować inne programy MQL: Wstawiony kod #define MT4_LOAD_STANDARD_INDICATOR 13 #define MT4_LOAD_CUSTOM_INDICATOR 15 #define MT4_LOAD_EXPERT 14 #define MT4_LOAD_SCRIPT 16

  3. #13

    Cytat Zamieszczone przez ;
    Testowane w języku angielskim, niemieckim, rosyjskim, arabskim i chińskim. Jak dla mnie działa wszędzie.
    proszę sprawdzić pm

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Używamy cookies
Używamy cookies, aby jak najlepiej dostosować witrynę do Twoich potrzeb. Kontynuowanie przeglądania tej strony, oznacza zgodę na używanie plików cookies. Aby uzyskać więcej informacji zapoznaj się z naszą Polityką Prywatności.