ライブラリ: DLLなしでのファイルマッピング

 

DLLなしでのファイルマッピング:

メモリマッピングファイル操作のDLL (C++からMQL5に変換された) 。

C++ プロジェクトはコードベースのメモリーマッピングで発表されました。

スクリプトの例が含まれています。

作者: o_O

 

アレックス、仮想ファイルハンドルを別のスレッドに渡すことを想定していましたか?

もしあれば教えてください。

ZY でも一般的には、これはいいことだと思います。

 
Urain:

アレックス、仮想ファイルのハンドルを別のスレッドに渡すことを考えたことはある?

何が問題なんだ?
 
sergeev:
何が問題なんだ?

問題ありません。ハンドルをカプセル化して別のオブジェクトに渡しましたが、すべてうまくいきました。

ただ、このようなファイル・アクセス転送のために提供された場所を探しているだけです。

 

CMemMapApiクラスでは、メモリハンドルは、それを使用するプログラム(このオブジェクト)によって格納される必要があります。

そして、CMemMapFileでは、ハンドルはpublicm_hmemに 格納されます。

 
sergeev:

CMemMapApiクラスでは、メモリハンドルはそれを使用するプログラム(このオブジェクト)によって格納される必要があります。

そしてCMemMapFileでは、ハンドルはpublicm_hmemに 格納されます

それでは、私は何かをよく理解していない:)

ファイルを閉じた 後、他のプログラムで開くことができますか?

それは閉じた後に破棄されますか?

そして、ファイルが破棄され、メモリが解放されたとき?

 
Urain:

それなら、私は何かをよく理解していないことになる。)

ファイルを閉じた 後、他のプログラムで開くことができますか?

ファイルを閉じた後は破棄されるのですか?

ファイルが破棄され、メモリが解放されるのはいつですか?

ハンドルを渡すのではなく、ファイル名を指定して新しいスレッドで新しいオープンを作るのだ。
 
Urain:

ハンドルを渡すんじゃなくて、ファイル名で新しいスレッドを作るんだ。
ニコライ、なぜこんなことをしたんだ?もちろん、異なるソフトウェアが同時に1つの共通ファイルに書き込み/読み込みできるようにするためだよ。
 
sergeev:
ニコライ、どうしてこんなことをしたんだろう?もちろん、異なるソフトウェアが同時に1つの共通ファイルに書き込み/読み込みができるようにするためだよ。
アレックス、ご苦労様。僕にとっては新しいトピックだから、まだ使ってみたことがないんだ。ただ、今のところ質問がある。トピックのタイトルでは、DLLなしでと 強調されています。しかし、kernel32.dllと msvcrt.dllへの アピールがあります。つまり、この解決策はマーケットには適していないということですか?
 
tol64:
アレックス、ご苦労様。私にとってはまだ新しいトピックなので、(ラシードが提案してくれた記事を)読む必要がある。しかし、今のところ疑問があります。トピックのタイトルでは、DLLなしでと 強調されています。しかし、kernel32.dllと msvcrt.dllへの アピールがあります。では、この解決策はマーケットには適していないのでしょうか?

Marketには適さないが(まだ検討中だが)、RenatはMQL5標準にそのようなものを実装することを考えていると言っている。

タイトルの意味は、自作のdllを使わないという意味です。結局のところ、Windows標準のdllは自作のものよりも安全なのです。

 
Urain:

タイトルは、自作DLLなしという意味です。結局のところ、Windows標準のDLLは自作DLLよりも安全なのです。

そう、自作のdllを使わないという意味だ。そして、標準的なものは、それが何をするのか誰もが知っているという意味で安全です。
市場にとって、この解決策は(既存のルールによれば)適切ではありません。


ex5-libraryから関数を呼び出す Expert Advisorを公開することができます

つまり、すべてのDLLの呼び出しはex5内に配置され、それは市場には公開されませんが、コードベースまたは開発者のサイトにあります。