Eksport danych MQL4 i DLL
Pokaż wyniki od 1 do 10 z 10

Wątek: Eksport danych MQL4 i DLL

  1. #1
    Witam wszystkich Mam utworzony DLL, który odczytuje dane w pliku tekstowym na serwerze i wszystko działa poprawnie.
    Teraz chcę podzielić adres URL w DLL i przekazać część ścieżki jako parametr wejściowy w moim kodzie mql, ale to nie działa.

    moja biblioteka DLL to:

    Wstawiono kod extern C {__declspec (dllexport) int main (std :: wstring Patc) {std :: ofstream fout (Lc: \\ test \\ _ test.htm); std :: wstring url = Lhttps:/mysite.com/ Patch; HINTERNET hopen = InternetOpen (LMyAppName, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); if (hopen) {flagi DWORD = INTERNET_FLAG_DONT_CACHE; if (url.find (Lhttps:/) == 0) flags | = INTERNET_FLAG_SECURE; HINTERNET hinternet = InternetOpenUrl (hopen, url.c_str (), NULL, 0, flagi, 0); if (hinternet) {char buf # 91; 10000 # 93 ;; DWORD received = 0; int i; while (InternetReadFile (hinternet, buf, sizeof (buf), received)) {if (! received) break;/fout.write(buf, received); int I = 0; int II = 5; for (i = 0; i = = received; i ) {//- mój odczytany kod jest dobry !!! } system (PAUSE); } InternetCloseHandle (hinternet); } InternetCloseHandle (hopen); } return 0; }}
    Mój kod Test Mql4 to:

    Wstawiono kod #import Dll1.dll int main (string Patch); #import nt OnInit () {Print (Serial:, main (Read.txt)); return (INIT_SUCCEEDED); }

  2. #2

  3. #3

    Cytat Zamieszczone przez ;
    Pomóż mi proszę?!?
    Musisz przejść do biblioteki DLL, aby utworzyć bufor znaków z ustalonym rozmiarem i tam skopiować. Później użyj metod ciągów mt4, aby przekonwertować go na łańcuch

  4. #4
    Nie zrozumiałem, przepraszam, że mogę dać mi przykład, dzięki!

  5. #5
    Próbowałem w ten sposób, ale to nie działa: Wstawiony kod __declspec (dllexport) int main (std :: string A) {std :: string s (A); std :: wstring ws = ws.assign (A.begin (), A.end ()); std :: wstring url2 = LReadCSV2.txt; std :: wstring url = Lhttps:/mysite.com/; url = url L ws;/mój kod ....}

  6. #6
    MQL4: #import XXX uint main (string a, char buffer []); #import string a; char * buffer []; główny (a, bufor); C: __declspec (dllexport) int main (std :: string A, void * buffer)

  7. #7

    Cytat Zamieszczone przez ;
    moja biblioteka DLL to:
    Może zaczniesz od opublikowania kodu w odpowiedni sposób? Użyj funkcji źródła redaktorów lub umieść kod w tagach kodu. Kto będzie kłopotać się czytając twój bałagan listów? Po drugie, istnieje przykładowy kod pod \ MQL4 \ Scripts \ Examples \ DLL \ DLLSample.cpp, jak sobie z tym poradzić.

  8. #8

    Cytat Zamieszczone przez ;
    {quote} Może zaczniesz od opublikowania kodu w odpowiedni sposób? Użyj funkcji źródła redaktorów lub umieść kod w tagach kodu. Kto będzie kłopotać się czytając twój bałagan listów? Po drugie, istnieje przykładowy kod pod \ MQL4 \ Scripts \ Examples \ DLL \ DLLSample.cpp, jak sobie z tym poradzić.
    przepraszam, masz rację. Poprawiłem formatowanie kodu

  9. #9

    Cytat Zamieszczone przez ;
    MQL4: #import XXX uint main (string a, char buffer []); #import string a; char * buffer []; główny (a, bufor); C: __declspec (dllexport) int main (std :: string A, void * buffer)
    sI otrzymuje następujący błąd naruszenia: Access naruszenie odczytu do 0xCCCCCCD0 w dll Wstawiony kod __declspec (dllexport) int main (std :: string A, void * buffer) {std :: wstring ws = ws.assign (A.begin (), A.end ()); std :: wstring url = Lhttps:/mysite.com//; url = url L ws;/mój kod ...} Kod MQL4: Wstawiony kod #import Dll1.dll uint main (string a, char buffer # 91; # 93; #import string a; char buffer # 91; # 93 ;; StringToCharArray (ReadCSV2.txt, buffer);

  10. #10

    Cytat Zamieszczone przez ;
    {quote} sI otrzymuje następujący błąd naruszenia: Naruszenie dostępu odczytane do 0xCCCCCCD0 w dll __declspec (dllexport) int main (std :: string A, void * buffer) {std :: wstring ws = ws.assign (A.begin () , A.end ()); std :: wstring url = Lhttps:/mysite.com//; url = url L ws;/mój kod ...} Kod MQL4: #import Dll1.dll uint main (string a, char buffer []); #import string a; char buffer []; StringToCharArray (ReadCSV2.txt, buffer);
    Nie pomysł, ale nie powinieneś używać std jako parametru dla ciągów. I powinieneś przekazać ciąg jako zmienną. Nigdy nie podawaj ciągu jako stałej statycznej. Powinieneś wyszukiwać przykłady w sieci mql5.

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.