Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 163

 
hoz:

Есть библиотека hoz_LoggingToAnywhere@Library.mq4, которая вызывается из заголовочного файла hoz_Base@Include.mqh

При компиляции библиотеки hoz_LoggingToAnywhere@Library.mq4 в журнале вижу:

Иду туда.. А там вижу:

Вызывая данную функцию fPrint из других библиотек, нигде ничего не ругается, а вот из заголовочного файла.. ругается. Почему так? Скопировано уже прям символ в символ..


Потому что данная функция имеет в качестве параметров (...), а нужен точный состав


ссылка:

https://docs.mql4.com/ru/basis/preprosessor/import

Так как импортируемые функции находятся вне компилируемого модуля, компилятор не может проверить правильность передаваемых параметров. Поэтому, во избежание ошибок выполнения, необходимо точно описывать состав и порядок параметров, передаваемых в импортируемые функции. Параметры, передаваемые в импортируемые функции (как из EX4, так и из DLL-модулей), не могут иметь значения по умолчанию.

 
ilunga:

Потому что данная функция имеет в качестве параметров (...), а нужен точный состав


ссылка:

https://docs.mql4.com/ru/basis/preprosessor/import

Так как импортируемые функции находятся вне компилируемого модуля, компилятор не может проверить правильность передаваемых параметров. Поэтому, во избежание ошибок выполнения, необходимо точно описывать состав и порядок параметров, передаваемых в импортируемые функции. Параметры, передаваемые в импортируемые функции (как из EX4, так и из DLL-модулей), не могут иметь значения по умолчанию.


Так импортировал то я функции верно, согласно:

#import "hoz_LoggingToAnywhere@Library.ex4"
    void fPrint (string& fs_Text);
#import
#import "hoz_HandlingWithErrorS.ex4"
    string fErrorToString(int fi_Error);
    string fErrorDescription (int fi_Error);
#import

Тип и параметры функции есть... А использовал то я её уже так:

fPrint (StringConcatenate ("fInitBase() => ", fErrorToString (bi_Err)));

По сути тут очевидно, что всё что в скобках StringConcatenate это тип string, я же уже при импорте объявил их.

//.......................................................................................................................................................................//

Где косяк то? Чёта выходит полная ерунда. Заменил на так:

string m = StringConcatenate ("fInitBase() => ", fErrorToString (bi_Err));
   fPrint (m);

И ошибок больше нет. Но мне такой вид ненравится. Как-то удлинняется всё. Короче никак?

 
hoz:


Где косяк то?

В Вашем подходе. Если точне - в Вашем нежелании читать тех.документацию. Постоянно одни и те же "грабли". Будьте любезны, самостоятельно прочтите в каких случаях можно передавать параметры по ссылке, а в каких такая возможность не предусмотрена.

https://docs.mql4.com/ru/basis/variables/formal

Если не понятно - просто заучите.

 
VladislavVG:

В Вашем подходе. Если точне - в Вашем нежелании читать тех.документацию. Постоянно одни и те же "грабли". Будьте любезны, самостоятельно прочтите в каких случаях можно передавать параметры по ссылке, а в каких такая возможность не предусмотрена.

https://docs.mql4.com/ru/basis/variables/formal

Если не понятно - просто заучите.


В ведь где-то Вы правы. Но тут не нежелание понять, а некоторая рассеянность. Вот над этим я и работаю. Вопрос исчерпан. Огромное Спасибо за упрёк! Принял и учту.
 
hoz:

В ведь где-то Вы правы. Но тут не нежелание понять, а некоторая рассеянность. Вот над этим я и работаю. Вопрос исчерпан. Огромное Спасибо за упрёк! Принял и учту.
В угол, на горох!
 
artmedia70:
В угол, на горох!


 

Господа, подскажите, как настроить (закрыть) просмотр вкладок на fxbook. Благодарю.


 
Вопрос решил.
 

Не совсем еще разобрался с mql4, но уже есть успехи. В mql5 мне нравится тестер стратегий, на мой взгляд можно глубже увидеть картину и только из-за тестера, хочу переделать советники на mql5.

Но, одно но зашел на форум mql5, сообщений мало, форум малоактивен. Можно на этом форуме спрашивать по mql5?

 
Forexman77:

Не совсем еще разобрался с mql4, но уже есть успехи. В mql5 мне нравится тестер стратегий, на мой взгляд можно глубже увидеть картину и только из-за тестера, хочу переделать советники на mql5.

Но, одно но зашел на форум mql5, сообщений мало, форум малоактивен. Можно на этом форуме спрашивать по mql5?

По моему MQL4 и MQL5 разделило людей на трейдеров и программистов. На MQL5 можно очень много всяких КРАСИВОСТЕЙ сделать, и потом продавать их на МАРКЕТЕ. А обычному трейдеру достаточно MQL4. Уже не говоря о тех кто торгует ручками. Сам пробовал, и даже немного въехал в ООП. Пробуйте и учитесь. Это Вам зачтётся))).