Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Форматируй текст в редакторе сообщений. Это удобно!
Forex Trader
114237
Forex Trader 2006.02.10 18:49 
1. Зачем код ошибки зануляется после вызова GetLastError? Это не совсем удобно при работе.

2. Есть mq4 library (описана как #property library).
В этой библиотеке есть такой код:
int code = 0;

int Get() {
  return (code);
}

void Set(int c) {
  code = c;  
}


Запустил 2 эксперта. Каждый из них импортирует функции Get и Set.
Первый вызывает Set, второй Get.
Обнаружилось, что после вызова Set первого эксперта второй не возвращает это значение с помощью Get.
Т.е. каждый эксперт делает свою копию переменной code?
Просьба прокомментировать.

MetaQuotes Software Corp.
Модератор
178234
MetaQuotes Software Corp. 2006.02.10 18:54  
1. Это стандартный и правильный способ работы.

2. Правильно - библиотека же в пространство разных экспертов загружается.
Forex Trader
114237
Forex Trader 2006.02.10 19:11  
1. Это стандартный и правильный способ работы.


Запустил свой старый добрый шестой Visual Studio.
  SetLastError(123);
	
  DWORD code1 = GetLastError();
  DWORD code2 = GetLastError();
  DWORD code3 = GetLastError();	



Во всех 3-х переменных 123. Ничего не зануляется.

2. Правильно - библиотека же в пространство разных экспертов загружается.


Каждый новый эксперт - это новый процесс? Заранее прошу простить за мою темноту.

Forex Trader
114237
Forex Trader 2006.02.10 19:53  

Запустил свой старый добрый шестой Visual Studio.

Предусмотренное нами поведение реализовано для большинства пользователей, более простых и не таких продвинутых, как Вы.


Каждый новый эксперт - это новый процесс? Заранее прошу простить за мою темноту.

Прочитайте в словаре МетаЭдитора топики "Выполнение программ" и "Импорт функций". В сегодняшнем исправленном билде добавился топик "Ошибки выполнения"
Forex Trader
114237
Forex Trader 2006.02.10 20:38  
Вы хотите сказать, что все глобальные переменные библиотеки преобразуете в thread local variables?
MetaQuotes Software Corp.
Модератор
178234
MetaQuotes Software Corp. 2006.02.11 02:39  
Вы хотите сказать, что все глобальные переменные библиотеки преобразуете в thread local variables?

Наши библиотеки - это не DLL. Их копии загружаются/привязываются к каждому эксперту в отдельности. Каждый эксперт полностью независим от остальных и работает в своем собственном потоке(не процессе).
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий