Hatalar, hatalar, sorular - sayfa 1026

 
avoitenko :

842/64 bit oluşturun. Bir tuval bildirirken:

bir hata:

çözümlenmemiş statik değişken 'CCanvas::m_default_colors'

Bu sadece ben miyim?

Görünüşe göre herkes var.

MetaSürücü :

Açıkça başlatmayı deneyin:

Her ne kadar belgelere bakılırsa, bu bir hatadır. https://www.mql5.com/ru/docs/basis/oop/staticmembers

..... Statik sınıf üyelerinin global düzeyde açıkça başlatılmasına gerek yoktur, program yüklendiğinde otomatik olarak başlatılırlar. ......

Sınıf kodunda herhangi bir değişiklik olmadı ve daha önce böyle bir hata yoktu.

 //+------------------------------------------------------------------+
//| Class CCanvas                                                    |
//| Usage: class for working with a dynamic resource                 |
//+------------------------------------------------------------------+
class CCanvas
  {
private :
   uint               m_style;                   // line style template
   uint               m_style_idx;               // variable - current index of bit in line style template
   static uint        m_default_colors [ 9 ];       // default colors

protected :
 
tol64 :

Görünüşe göre herkes var.

Sınıf kodunda herhangi bir değişiklik olmadı ve daha önce böyle bir hata yoktu.

bu şekilde derlenir:

 #include <Canvas\Canvas.mqh>

static uint   CCanvas::m_default_colors[ 9 ] = 
  { 0x444444 , 0x444444 , 0x444444 , 0x444444 , 0x444444 , 0x444444 , 0x444444 , 0x444444 , 0x444444 };

CCanvas bmp;
 

Merhaba! Sorunu çözmeye yardımcı olun.

Geliştirmelerimi MT4'ten MT5'e aktarmaya başladım. Yeni MQL'de ilk kez bir DLL yüklerken bir sorunla karşılaştım. İyi derler, ancak türkiye çalıştırırken. "dll açılamıyor" hatası. Artık mesaj yok. İlgili makaleleri yeniden okudum, görünen o ki her şeyi gerekli yerlere yerleştirdim: kütüphane ...\Terminals\MetaTrader 5\MQL5\Libraries dizininde

 //+------------------------------------------------------------------+
//|                                                   Test MySQL.mq5 |
//|                                                               me |
//|                                                               no |
//+------------------------------------------------------------------+
#property copyright "me"
#property link        "no"
#property version    "1.00"
#property indicator_separate_window

#import "libmysql.dll"
int mysql_init( int db);
int mysql_errno( int TMYSQL);
int mysql_real_connect( int TMYSQL, string host, string user, string password, string DB, int port, int socket, int clientflag);
int mysql_real_query( int TMSQL, string query, int length);
void mysql_close( int TMSQL);
#import 


int i = 0 ;
int mysql;
string query;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   Print ( GetLastError ());
   mysql = mysql_init(mysql);
   if (mysql!= 0 ) Print ( "allocated" );
   string host= "localhost" ;
   string user= "root" ;
   string password= "1111" ;
   string DB= "fxdb" ;
   int clientflag = 0 ;
   int port = 3306 ;
   string socket= "" ;
   int res = mysql_real_connect(mysql,host,user,password,DB,port,socket,clientflag);
   int err = GetLastError ();
   if (res == mysql) Print ( "connected" );
   else Print ( "error = " ,mysql, " " ,mysql_errno(mysql), " " );
   //До этой строки все правильно работает.
   i++;   
   StringConcatenate (query, "INSERT INTO " ,
                                     //CharToStr(039),
                                     "test" , 
                                     //CharToStr(039), 
                                     " (" , 
                                     //CharToStr(039), 
                                     "ID" , 
                                     //CharToStr(039), 
                                     ", " ,
                                     //CharToStr(039), 
                                     "text" ,
                                     //CharToStr(039), 
                                     ") VALUES (" , 
                                     CharToString ( 039 ),
                                     DoubleToString (i, 0 ),
                                     CharToString ( 039 ),
                                     ", " ,
                                     CharToString ( 039 ), 
                                     "testtext" ,
                                     CharToString ( 039 ),
                                     ")"
                                    );
   Print ( "i = " , i);                                    
   Print (query);
   
 
   int length = StringLen (query);
   mysql_real_query(mysql,query,length);
   int myerr=mysql_errno(mysql);
   if (myerr> 0 ) Print ( "error=" ,myerr); else Print (i, "good" ); 
   return ( 0 );
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
//---
   
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+
//| TradeTransaction function                                        |
//+------------------------------------------------------------------+
void OnTradeTransaction ( const MqlTradeTransaction & trans,
                         const MqlTradeRequest & request,
                         const MqlTradeResult & result)
  {
//---
   
  }
//+------------------------------------------------------------------+
 
MetaDriver :

bu şekilde derlenir:

Evet, ama bütün bunlar neden?

Sınıf yapıcısında, bu dizi de önerdiğiniz değerlerin üzerine yazılarak yeni değerlerle başlatılır.

Genel olarak, şöyle:

 #include <Canvas\Canvas.mqh>
uint CCanvas::m_default_colors[ 9 ]={ 0 };
CCanvas bmp;
hatasız derler. Ve geliştiricilerin yardıma m_default_colors girmenin anlamını açıklamalarına izin verin.
 
avoitenko :

Evet, ama bütün bunlar neden?

Sınıf yapıcısında, bu dizi de önerdiğiniz değerlerin üzerine yazılarak yeni değerlerle başlatılır.

Genel olarak, şöyle:

hatasız derler. Ve geliştiricilerin yardıma m_default_colors girmenin anlamını açıklamalarına izin verin.

Eh, hemen bunun bir hata olduğunu söyledim. Servis masasında bununla.

Her ne kadar belgelere bakılırsa, bu bir hatadır. https://www.mql5.com/ru/docs/basis/oop/staticmembers

..... Statik sınıf üyelerinin global düzeyde açıkça başlatılmasına gerek yoktur, program yüklendiğinde otomatik olarak başlatılırlar. ......

Önerilerimin geri kalanı, programı bu hatanın varlığında çalıştırmakla ilgili. Ara başlatma böyle bir işlevi yerine getirir, yani hatanın düzeltilmesini beklemeden çalışabilirsiniz.

Bu, bu tür durumlarda eylemlerimin tipik bir şemasıdır .

 

MetaDriver :

Ara başlatma böyle bir işlevi yerine getirir, yani hatanın düzeltilmesini beklemeden çalışabilirsiniz.

Bu, bu gibi durumlarda eylemlerimin tipik bir şemasıdır .

Ve eylemlerim de. Teşekkür ederim.

Ve servis masası bu ileti dizisini okur ve yeniden okur, böylece düzeltirler.

 

Al_key :

"dll açılamıyor" hatası. Artık mesaj yok.

DLL'nizin terminalini bulamıyor.

Kopyalama yolu, gezgindeki MQL5 klasörünün özellikleri alınarak MetaEditor üzerinden görülebilir, yol "Konum" sütununda belirtilir. Ardından DLL'nizi [path]\MQL5\Libraries\ klasörüne kopyalayın.

 
Vladon :

Sayın yönetim, metaquotes DEMO sunucusuyla ilgili bir şey

Dergide yazan: 2013.08.01 11:58:35 '1449777': MetaQuotes-Demo bağlantısı kesildi

Hesap, aşırı ticaret faaliyeti nedeniyle ticaret sunucusu tarafından yasaklandı. İşlem platformu korunur ve her tıklamada düşüncesizce ticaret talepleri gönderen hesapları devre dışı bırakır.
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса - Документация по MQL5
 
avoitenko :

DLL'nizin terminalini bulamıyor.

Kopyalama yolu, gezgindeki MQL5 klasörünün özellikleri alınarak MetaEditor üzerinden görülebilir, yol "Konum" sütununda belirtilir. Ardından DLL'nizi [path]\MQL5\Libraries\ klasörüne kopyalayın.

Evet, ama yazdığım gibi, zaten libmysql [path]\MQL5\Libraries\ dosyasını kopyaladım.
 
Al_key :
Evet, ama yazdığım gibi, zaten libmysql [path]\MQL5\Libraries\ dosyasını kopyaladım.

Meta düzenleyiciye gidiyorum, MQL5 klasörünün özelliklerini açıyorum, genellikle terminalimin klasörüyle ilişkili olmayan bir tür yol var. Şimdi hep böyle mi yoksa ayarlanabilir mi? Evet, bu arada öyle yaptım, her şeyi kopyaladım. Hala aynı hata.


Yani, gönderinin yeni düzenlemesi. Her şey çalışıyor gibi görünüyor, bir sürü başka hata, şimdi çözeceğim. Yine de hindiler, danışmanlar ve diğer veriler için standart bir klasör nasıl yapılır. /portable tuşu yardımcı olur mu?