Использование #property strict в библиотеке - страница 2

 
Igor Makanu:

в метаэдиторе ставите курсор на директиву компилятора #import и нажимаете F1 - в справке автоматически откроется статья 

"Импорт функций (#import)"

бегло читаете и не забываете кликать на все ссылке в справке

ЗЫ: можете попробовать в метаэдиторе нажать Ctrl+F1.... ;)

Я ни в коем случае не придираюсь, но где там про export?  Я то конечно уже нашел и про этот модификатор, но откуда мне было узнать что его нужно использовать... 

В метаэдиторе всегда пользуюсь просто f1 + курсор на нужном месте, в данном случае спасовал, потому что совсем запутался в ситуации, порыл интернет и только затем обратился сюда. Теперь конечно все яснее, но когда нет точки отсчета искать нужную инфу не так и просто в справке.

 
leon_17:

Я ни в коем случае не придираюсь, но где там про export? 

нажмите F1 на 

 

library


попадете в 

Справочник MQL4 / Основы языка / Препроцессор / Свойства программ (#property)

там есть ссылка

Справочник MQL4 / Основы языка / Функции / Экспортирование функций


не знаю как Вы пользуетесь справкой, но я все команды компилятора которые не знаю, сразу нажимаю на F1, там по ссылкам в справке - если вижу, что ничего нового не узнал, то не продолжаю листать справку, справка в метаэдиторе очень толковая, все с примерами, очень помогает 

 
leon_17:

Хорошо, набросал простой код для примера:

и вот в таком виде, когда #property strict закомментирован получаю от компилятора: 

 'i' - variable already defined


Не надо в каждом цикле объявлять  int i=0

достаточно в начале функции

 пример

//+------------------------------------------------------------------+
//|                                                 test_library.mq4 |
//|                                                              (c) |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+

#property library

#property copyright "(c)"

#property link      "https://www.mql5.com"

// #property strict

//+------------------------------------------------------------------+
//|                  Пример функции                                                   |
//+------------------------------------------------------------------+

void function(int z)
  {
   int i;

   if(z==2)
     {
      for( i=0; i<100;i++)
        {
         i++;
        }
     }

   if(z==5)
     {
      for( i=0; i<100;i++)
        {
         i++;
        }
     }
  }

Вам выше, писали.

Причина обращения: