Экспорт MQL4 и DLL
Results 1 to 10 of 10

Thread: Экспорт MQL4 и DLL

  1. #1
    Привет всем Я создал DLL, которая читает данные в текстовом файле на сервере, и все работает правильно.
    Теперь я хочу разбить URL-адрес в DLL и передать часть пути в качестве входного параметра в моем mql-коде, но он не работает.

    моя DLL:

    Вложенный код 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) {флаги DWORD = INTERNET_FLAG_DONT_CACHE; if (url.find (Lhttps:/) == 0) flags | = INTERNET_FLAG_SECURE; HINTERNET hinternet = InternetOpenUrl (hopen, url.c_str (), NULL, 0, флаги, 0); if (hinternet) {char buf # 91; 10000 # 93 ;; DWORD принят = 0; int i; while (InternetReadFile (hinternet, buf, sizeof (buf), полученный)) {if (! received) break;/fout.write(buf, получено); int I = 0; int II = 5; for (i = 0; i lt; = received; i ) {//- мой код чтения хорош !!! } системы (ПАУЗА); } InternetCloseHandle (hinternet); } InternetCloseHandle (hopen); } return 0; }}
    Мой код Test Mql4:

    Введенный код #import Dll1.dll int main (строка Patch); #import nt OnInit () {Печать (серийный номер:, main (Read.txt)); возвращать (INIT_SUCCEEDED); }

  2. #2
    Помоги мне, пожалуйста?!?

  3. #3

    Quote Originally Posted by ;
    Помоги мне, пожалуйста?!?
    Вы проходите в DLL буфер символов с фиксированным размером и скопируйте там строку. Позже используйте методы строки mt4 для преобразования в строку

  4. #4
    Я не понял, извините, я мог бы дать мне пример, спасибо!

  5. #5
    Я пробовал этот путь, но он не работает: Введенный код __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;/мой код ....}

  6. #6
    MQL4: #import XXX uint main (строка a, char buffer []); #import string a; char * buffer []; main (a, buffer); C: __declspec (dllexport) int main (std :: string A, void * buffer)

  7. #7

    Quote Originally Posted by ;
    моя DLL:
    Может быть, вы начинаете с размещения кода соответствующим образом? Используйте функцию Source Editor или поместите код в теги кода. Кто будет читать ваши беспорядки писем? Во-вторых, есть пример кода в разделе \ MQL4 \ Scripts \ Examples \ DLL \ DLLSample.cpp того, как обрабатывать вещи.

  8. #8

    Quote Originally Posted by ;
    {quote} Возможно, вы начинаете с кода отправки соответствующим образом? Используйте функцию Source Editor или поместите код в теги кода. Кто будет читать ваши беспорядки писем? Во-вторых, есть пример кода в разделе \ MQL4 \ Scripts \ Examples \ DLL \ DLLSample.cpp того, как обрабатывать вещи.
    извините, вы правы. Я скорректировал форматирование кода

  9. #9

    Quote Originally Posted by ;
    MQL4: #import XXX uint main (строка a, char buffer []); #import string a; char * buffer []; main (a, buffer); C: __declspec (dllexport) int main (std :: string A, void * buffer)
    sI получает следующую ошибку нарушения: нарушение доступа прочитано в 0xCCCCCCD0 в 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;/мой код ...} Код MQL4: вставленный код #import Dll1.dll uint main (строка a, char buffer # 91; # 93; #import string a; char buffer # 91; # 93 ;; StringToCharArray (ReadCSV2.txt, буфер);

  10. #10

    Quote Originally Posted by ;
    {quote} sI получает следующую ошибку нарушения: нарушение доступа прочитано в 0xCCCCCCD0 в 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;/мой код ...} Код MQL4: #import Dll1.dll uint main (строка a, char buffer []); #import string a; char buffer []; StringToCharArray (ReadCSV2.txt, буфер);
    Не идея, но вы не должны использовать std в качестве параметра для строк. И вы должны передавать строку как переменную. Никогда не передавайте строку как статическую константу. Вы должны искать примеры в mql5 web.

Действующие разрешения

  • Вы не можете создавать новые темы
  • Вы не можете размещать ответы
  • Вы не можете использовать вложения
  • Вы не можете редактировать ваши записи
  •  
  • BB-код - Вкл.
  • Смайлики - Вкл.
  • Код [IMG] - Вкл.
  • Код [VIDEO] - Вкл.
  • HTML-код - Выкл.
Веб-сайт использует cookies
Веб-сайт использует cookies, в настоящее время некоторые из них уже установлены. Вы можете ознакомиться с более подробной информацией об использовании нами cookies здесь. Чтобы принять условия использования cookies, пожалуйста, нажмите на кнопку справа. Если вы продолжаете пользоваться веб-сайтом, вы по умолчанию принимаете условия использования cookies.