Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Знаете ли вы, что в MQL5 появилась обработка событий?
Forex Trader
114252
Forex Trader 2006.09.25 18:54 
2 Slawa, Renat ...

ПРОБЛЕМА.
Пытаюсь подключить к индикатору DLL. При запуске индикатора в логе сообщение "cannot load library 'tst4.dll' (error 126)".
Индикатор:
//-------------------------------------
#property indicator_chart_window
#property indicator_buffers 1
extern int X = 100;
#import "tst4.dll"
int GetIntValue(int x);
#import
int init() { return(0);}
int deinit() { Comment(""); return(0); }
int start()
{
Print("Started");
int y;
y=GetIntValue(X);
Comment("Result - ",y);
return(0);
}
//------------------------------------------------------------------------

tst4.cpp: (переделанный ExpertSample.cpp)

#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
//----
#define MT4_EXPFUNC __declspec(dllexport)

BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)
{
//----
switch(ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
//----
return(TRUE);
}

MT4_EXPFUNC int __stdcall GetIntValue(const int ipar)
{
printf("GetIntValue takes %d\n",ipar);
return(ipar);
}
//--------End------------------------------------------

Слово "Started" в логе не появляется.

Компилятор Borland C++ 6.0. Модуль ExpertSample.cpp компилируется и подключается к индикатору без проблем, слово Started появляется в логе. Все проекты с исходниками лежат в одной и той же папке. Проверено раз 5 с созданием новых проектов DLL - результат такой же.

В чем причина? Ведь из кода ExpertSample.cpp я убрал только функции и описания типов, оставив две. Почему со всеми функциями DLL подключается, а с двумя - нет. И что за ошибка 126 - в документации про нее ничего не написано.

MT4 build 197 12/09/06

С уважением, Андрей.
Forex Trader
114252
Forex Trader 2006.09.25 20:32  
Не хватает какой-нибудь DLL, используемой в свою очередь в Вашей DLL
Попробуйте в командной строке запустить

depends tst4.dll

И Вы увидите какого компонента не хватает
Forex Trader
114252
Forex Trader 2010.02.02 16:10  
Странно я воспользовался вашим советом, depends ничего критического не показал, однако длл-ка все же не хочет подгружаться на windows 2003
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий