Скачать MetaTrader 5

Описание глоб.переменных в библиотеках?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Привык пользоваться стандартной библиотекой? В MQL5 она тоже есть!
Forex Trader
114257
Forex Trader 2006.02.28 15:28 
Если в библиотеках описывать глобальные переменные в виде стоковых массивов, то впоследствии в библиотечных ф-ях они оказываются непроинициализированными. В чем может быть проблема? Или это так и должно быть?
MetaQuotes Software Corp.
Модератор
181297
MetaQuotes Software Corp. 2006.02.28 17:55  
Приведите пример, пожалуйста.
Какие именно библиотеки (MQ4 или EX4)?
Forex Trader
114257
Forex Trader 2006.02.28 19:58  
//Вот тело библиотеки
#property library

//---- Подключаемые модули
/*
#include ...
#import ...
...
#import
*/
//---- *******************



//---- Инициализация глобальных переменных
//...
int temp=123;
string loginsAllowed[10]; //строковый массив ...
loginsAllowed[0]=".....0";
loginsAllowed[1]=".....1";
loginsAllowed[2]=".....2";
loginsAllowed[3]=".....3";
//...
//---- ***********************************


void firstFunction()
{
Print(temp);
}


//********************************************* SomeFunction *********************************************
bool someFunction()
{
int arrSize=ArraySize(loginsAllowed);

for(int i=0; i<arrSize; i++)
{
Print(loginsAllowed[i]);
}

return (false);
}
//**********************************************************************************************************************














//А вот тело скрипта, импортирующего ф-ии из нее
#property copyright "Copyright © 2005, Maxim Markin"
#property link "...."


#import "aaaaaa.ex4"
void firstFunction();
bool someFunction();
#import
//---- *****************************



//*********************************************** Функция скрипта ************************************************
int start()
{
someFunction();
return(0);
}
//****************************************************************************************************************








########################################
Все довольно просто, НО
в рез-те выполнения скрипта БЕЗ импорта ф-ии "void firstFunction();" и ее описания все замечательно работает - выводит элементы массива (частично заполненные)

при описании и импорте ф-ии "void firstFunction();" - все элементы "IS NULL"

В чем может быть дело?

В принципе я нашел способ обойти эту неприятность, но было-бы интересно узнать в чем здесь загвоздка
заранее благодарен...
MetaQuotes Software Corp.
Модератор
181297
MetaQuotes Software Corp. 2006.02.28 20:49  
Так нельзя инициализировать массив в _блоке_описания_переменных_.
loginsAllowed[3]=".....3"; - это полноценная _операция_, а не _инициализация_ массива.

Массивы инициализируются так:
string loginsAllowed[10]={ "1","2",... };
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий