DLL - страница 2

 
sergeev:

1 - разные битности пробовал?

2 - на другом компе пробовал?

3 - покажи как ты импортируешь и вызываешь (интересует списки параметров)

1. Нет. Только 32. Есть смысл пробовать 64? Мне кажется нет смысла. Даже если и заработаете на 64 битном (что в общем-то невероятно), это не вариант, должно работат на 32 битном.

2. Попробовал, тоже самое.

3.

#import "libSSA.dll"
   void fastSingular(double& sourceArray[],int arraySize, int lag, int numberOfComputationLoops, double& destinationArray[]);
#import

 В OnCalculate:

   double sourceValues[300];
   int n=300;
   int Lag=25;
   int NumberOfComputations=2;
   double calcValues[300];
   
   for(int i=0;i<300;i++)sourceValues[i]=close[i];

   fastSingular(sourceValues,n,Lag,NumberOfComputations,calcValues);    
      
   for(int i=0;i<300;i++)Label1Buffer[i]=calcValues[i];  

   return(rates_total);
 
Integer:
Не уверен, но может есть смысл заменить статические массивы на динамические?
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
  • www.mql5.com
Основы языка / Типы данных / Объект динамического массива - Документация по MQL5
 
TheXpert:
Не уверен, но может есть смысл заменить статические массивы на динамические?
Здравая мысль.
 
TheXpert:
Не уверен, но может есть смысл заменить статические массивы на динамические?

С таким подходом Access violation at address... или Array out of range... просто неминуем.

Наверное, дело не в передаче параметров. Просто DLL криво написана. Что тут обсуждать ?!

 

Тогда просто интересно, почему криво написанная .dll работает в MT4. У меня был в чем то похожий случай

https://www.mql5.com/ru/forum/3632#comment_524635 

Stack damaged, check DLL function call
Stack damaged, check DLL function call
  • www.mql5.com
Были обновление сообщение об ошибке.
 
TheXpert:
Не уверен, но может есть смысл заменить статические массивы на динамические?
Не помогло.
 
Integer:
Не помогло.
Массивы с запасом создавать. Авойтенко прав скорее всего.
 

Вчера возникла аналогичная ошибка Access violation (только read) c kernel32.dll (то же наверное кривая, а Майкрософт то не знает :)

Решилось на удивление просто - добавил несколько незначаших строк MQL5 кода (несколько переменных и условия на заведомую истинность).

 
A100:

Вчера возникла аналогичная ошибка Access violation (только read) c kernel32.dll (то же наверное кривая, а Майкрософт то не знает :)

Решилось на удивление просто - добавил несколько незначаших строк MQL5 кода (несколько переменных и условия на заведомую истинность).

Операционка случайно не Windows 8 x64?
 
Нет - Win7/32. Если повторится - буду обращаться в СервисДеск.