//+------------------------------------------------------------------+//| Class CCanvas |//| Usage: class for working with a dynamic resource |//+------------------------------------------------------------------+class CCanvas
{
private:
uint m_style; // line style templateuint m_style_idx; // variable - current index of bit in line style templatestaticuintm_default_colors[9]; // default colorsprotected:
mt4からmt5への開発の移行を始めました。初めてDLLの読み込みで問題に直面しました。コンパイルはうまくいくのですが、インジケータを起動すると。cannot open dll "というエラーが発生しました。エラーメッセージが出なくなった。I've read all the articles and placed it all way: Library in directory ...\TerminalsMetaTrader 5 templatesLibraries
//+------------------------------------------------------------------+//| 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 |//+------------------------------------------------------------------+intOnInit()
{
//--- indicator buffers mappingPrint(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");
elsePrint("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); elsePrint(i, "good");
return(0);
//---return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
//---//--- return value of prev_calculated for next callreturn(rates_total);
}
//+------------------------------------------------------------------+//| TradeTransaction function |//+------------------------------------------------------------------+voidOnTradeTransaction(constMqlTradeTransaction& trans,
constMqlTradeRequest& request,
constMqlTradeResult& result)
{
//---
}
//+------------------------------------------------------------------+
Bild 842/64 bit.キャンバを宣言するとき。
というエラーが表示される。
未解決の静的変数 'CCanvas::m_default_colors' があります。
みんな持っているようです。
明示的に初期化してみてください。
これはバグのようですが、ドキュメントによると、https://www.mql5.com/ru/docs/basis/oop/staticmembers。
......静的クラスのメンバは明示的にグローバルに初期化する必要はなく、プログラムがロードされたときに自動的に初期化されます。
クラスコードに変更はなく、以前はエラーはなかった。
それは誰にとっても同じようなものだと思います。
クラスコードに変更はなく、以前はこのようなエラーはありませんでした。
このようにコンパイルします。
こんにちは!問題を解決するのを手伝ってください。
mt4からmt5への開発の移行を始めました。初めてDLLの読み込みで問題に直面しました。コンパイルはうまくいくのですが、インジケータを起動すると。cannot open dll "というエラーが発生しました。エラーメッセージが出なくなった。I've read all the articles and placed it all way: Library in directory ...\TerminalsMetaTrader 5 templatesLibraries
このようにコンパイルされます。
ええ、でもこれって何のためなんですか?
クラスのコンストラクタでは、この配列も新しい値で初期化され、あなたが提案した値が上書きされます。
とにかく、こんな感じで。
エラーなくコンパイルされる。また、m_default_colorsの 意味は、開発者がヘルプで教えてあげましょう。はい、でも何のために?
クラスのコンストラクタでは、この配列も新しい値で初期化され、あなたが提案した値は消去されます。
とにかく、それだけです。
エラーなくコンパイルされる。また、m_default_colorsの 意味は、開発者がヘルプで説明できるようにしましょう。バグだと言ったんだから、それでサービスデスクに行けよ。
ドキュメントから判断すると、これはバグですが。 https://www.mql5.com/ru/docs/basis/oop/staticmembers
......静的クラスのメンバは、グローバルに明示的に初期化する必要はなく、プログラム起動時に自動的に初期化される ......................(中略)............。
残りの提案は、 このバグがある状態でプログラムを実行することに専念します。 中間初期化でこの機能を実行するので、バグ修正を待たずに作業 することができます。
これは、そんなときの私の行動の典型的な図式 である。
MetaDriver:
中間初期化でこの機能を行うので、バグの修正を待つことなく作業ができる。
これは、そんなときの私の行動の典型的な図式 である。
そして、私の行動も。ありがとうございます。
そして、サービスデスクはこのスレッドを読み、再読しているので、修正してくれるでしょう。
Al_key:
cannot open dll "というエラーが発生しました。それ以上のメッセージはありません。
ターミナルでDLLが見つからない。
コピーするパスは、MetaEditorからナビゲータでMQL5フォルダのプロパティを取り、「場所」欄にパスを書き込んで見ることができます。そして、作成したDLLを[path]フォルダの中にコピーします。
管理者の皆様へ、metaQuotes-DEMOのサーバーに異常が発生しています。
ログに記載 : 2013.08.01 11:58:35 ネットワーク '1449777': MetaQuotes-Demoへの接続が失わ れました。
ターミナルでDLLが見つからない。
コピーしたパスはMetaEditorのナビゲータでMQL5フォルダのプロパティを取ると、場所の欄にパスが書かれているのが確認できます。そして、作成したDLLを[path]フォルダの中にコピーします。
Yeah, but like I wrote, I already copied libmysql [path]\MQL5Librariesธิ์.
メタエディタでMQL5フォルダのプロパティを開くと、私のターミナルフォルダとは関係ないパスが表示されています。これからずっとこのままなのか、それとも調整できるのか?ちなみに、そうして全部コピーしました。それでも同じエラーです。
OK、新たに編集して投稿します。すべて動いているようです、他のエラーの束、これから調べます。そしてやはりインデックスやEAなどのデータの標準フォルダの作り方。ポータブルキーは役に立ちますか?