10分でできるMQL5用DLLの書き方、データのやりとり」についてのディスカッション。 - ページ 11

 
Seric29:

まあ、はい、私もそれがないのを見たことがあります、それは私のために動作しません、まあ、何を複製するために私を示す、正しい方向を教えてもらえますか?

https://github.com/Roffild/RoffildLibrary/blob/master/Libraries/Roffild/PythonDLL/public.h

https://github.com/Roffild/RoffildLibrary/blob/c38ba6babd0935704fd30abeb58b953e33ede3e9/Include/Roffild/PythonDLL.mqh#L16

異なるファイルでコードが重複しないように、この方法を使いました。

 
Roffild:

私にできることではありません。

 
dllに日付や文字列を渡すために、c++でどのようなライブラリを組み込む必要がありますか?また、c++で色を扱うにはどうすればよいですか?
 
Seric29:
dllに日付や文字列を渡すには、c++にどのようなライブラリを組み込む必要がありますか?また、c++で色を扱うにはどうすればよいですか?

特に必要ありません。__time64_t (datetime)とwchar_t (string)は標準的な型である。色のアナログはCOLORREFです。

 
Ihor Herasko:

特に必要ありません。__time64_t (datetime)とwchar_t (string)は標準的な型である。色のアナログはCOLORREFです。

私はアホなので、この変数がどのように宣言され、その値がどのように見えるかを、あなたの推奨する方法で示すことは難しいでしょうか?日付の場合は32を使っているので、__time32_t でなければなりません。__time32_t の宣言方法、日付を格納する変数の宣言方法と その見え方、色について教えてください。文字列の場合、私はこうしています。

#インクルード<文字列

std::stringを使用しています。

文字列 l="123456 ";

日付については、#include<chrono>をアドバイスしましたが、それは動作しませんが、色については、さらに複雑なアドバイスが与えられましたそれについて書くことはありません。

 
そうなんですか! ...丸太よりずっと丈夫なんですよ。この3日間、同じものをいじくりまわしてきた。すべてを変え、名前を変え、配置を変え、脳内空間のナンキンムシさえもうめき声を止め、その事業の無駄を諦め、すべてに唾を吐き、休暇をとって隣人のところに行ってきた。を弾きながら、変ロ長調のタンバリンとティンパニでバラライカを踊り、明らかに異質な聖歌のようなものだ。..?!そして、端末の設定: ツール/設定/アドバイス/DLLのインポートを許可にチェックを入れなかったのが原因でした。おいおい....その上、自分でもよくわからない。もしかしたら、ほとんどの場合、自分は正しいことをしてきたのかもしれない......すべてのプロセスを繰り返すことはできても、何をどうやったのかが思い出せない......」。.さらに悪いことに....ここでは、すべてが異なるスタジオで機能し、動作します。ただ、「C」言語との関連、構造体やクラスとの相互作用、つまり、それらが入れられなくなることだけは理解できないが、、、何か、「C」ではなく「CPP」と書いて試してみようと思いつき、、、途中で全部どこかに書くことになりそうだ。いい勉強になりました。みんなに幸運がありますように。 試してみると、この「CPP」では動作しませんが、DLL自体の中のクラスのやり取りで全て動作するようになります。
Настройки платформы - Начало работы - MetaTrader 5
Настройки платформы - Начало работы - MetaTrader 5
  • www.metatrader5.com
Торговая платформа обладает множеством настроек, что позволяет организовать работу в ней так, как это удобно именно вам. Выполните команду " Настройки" меню "Сервис" или нажмите "Ctrl+O". Графики — общая настройка отображения ценовых графиков, а также настройка параметров управления объектами: выделение объектов после их создания, немедленная...
 
追伸:誤りのあるファイルは一気に削除して、ほとんど記憶にも残らないのですが、(これはDLLを自作する場合です)なぜかいつもそうではないんですよね......?しかも、捕まえられるわけがない。これは、いくつかの属性とwinnt.hライブラリ情報とのWindowsキットに関連しているもちろん、英語の検索にブラウザを翻訳する場合は、その場で見つけることができますが、昨日私は少しの検索と成功せずに何かをしようとしました。個人的には、プロジェクトの 設定のどこかで不正をしたり、適当に何かをして、リンカーがその動きでおかしくなっているのだと思います。一般的に、私のためにこのエラーはまだ不明瞭の端にある...、しかし、オプションがあり、今すぐにそれはこのエラーを生成し、あなたのコードを見て、分析するであろうことを村を作って....ほとんどの場合、そうすることになるでしょう。でも、すぐにではなく、徐々にでないと、脳が完全に燃え尽きてしまい、あまり残らないのです。みんなに幸運がありますように。追伸:私はMicrosoft Docsを忘れて、それはすべてを持って、今私はちらっと見て、すでに興味深い発見、それはどこかで私は式#defineを追加していないことを言う。あ、Docsのこと忘れてた。クソッタレgoogle....
 
C++のdllライブラリでdatetameとcolor変数を実装するには?dllでPrint()関数を 呼び出す方法c++にはないので、何で置き換えたらいいのでしょうか?
 
Ihor Herasko:

特に必要ありません。__time64_t (datetime)とwchar_t (string)は標準的な型である。色のアナログはCOLORREFです。


では、どのような仕組みになっているのか、見てみましょうか。

 
Seric29:
c++のDLLでdatetameとcolor型の変数を実装する方法は?dllでPrint()関数を 呼び出す方法c++にはないので、何で置き換えたらいいのでしょうか?

Print() は mql4 と mql5 でのみ利用可能な関数です。その出力デバイスが端末のログファイルであるため、直接置き換えることはできません。しかし、このDLLが接続されているExpert Advisor(インジケータ、スクリプト)に対応するコマンドを送信すれば、間接的に呼び出すことができます。dllとExpert Advisorの間のデータ交換がどのように実装されているかによります。

また、ターミナルジャーナルに限らず、どこかに何かを印刷するタスクがある場合、ファイル、プリンタ、エンドでの表示など、さまざまな可能性があります。