とても役に立つ記事だ!詳細なプレゼンテーションに感謝します。
はい、ありがとうございます。
Metaquotesはパフォーマンスを向上させ、バイトコードから脱却しようとしました!)))
作者への質問:純粋なMQL5プログラム、DLL、.NETモンスターの実行時間の比較テストは行われましたか?見てみると面白いと思います。
ああ、ありがとう。
Metaquotesはパフォーマンスを向上させ、バイトコードから脱却しようとしたんだ!)))
作者への質問:純粋なMQL5プログラム、DLL、.NETモンスターの実行時間の比較テストは行われましたか?見てみると面白いと思います。
原則的に、 可能性のある リソースを 公開 することは とても 有用 だと思います 。 この 記事は とても 興味深いです。 しかし、私は あまり 経験のない プログラマー なので、いくつか 質問があります。
。
私の観点では、アンマネージドコードは、プラットフォームに依存しない開発の可能性を与えてくれます。しかし、誰かがメタトレーダーを使用する場合、彼は定義されたプラットフォームを得ます。
一般的に アンマネージドコードを 使用した場合、またMQL5と 組み合わせた場合の利点は 何 でしょうか?
こんにちは、
原則的に、 可能性のある リソースを 公開 することは とても 有用 だと思います 。 この 記事は とても 興味深いです。 しかし、私は あまり 経験のない プログラマー なので、いくつか 質問があります。
。
私の観点では、アンマネージドコードは、プラットフォームに依存しない開発の可能性を与えてくれます。しかし、誰かがメタトレーダーを使用する場合、彼は定義されたプラットフォームを得ます。
、 一般的に アンマネージコードと MQL5を 組み合わせると 、どのような 利点が ある のでしょうか?
smartwartさん、こんにちは、
利点は、取引目的に使用できるC#ですでに開発されたコードが大量にあることです。次回の記事で詳しく説明します。
cheerz、
インベスティオ
これは今までで最高のものだ!私はC#が大好きで、これを使えるようになる可能性を探していました!今年最高のニュースだ!MQL5でEAを書いたのはこれが最後だったと思います。すべてのロジックをライブラリに配置し、すべてのEAに1つのテンプレートEA.mq5を使用するつもりです(ただ、それらは異なるライブラリでリンクされます)。
ありがとうございました!
ああ、ありがとう。
Metaquotesはパフォーマンスを向上させ、バイトコードから脱却しようとしたんだ!)))
作者への質問:純粋なMQL5プログラム、DLL、.NETモンスターの実行時間の比較テストは行われましたか?見てみると面白いかもしれません。
どのバイトコードから逃げたのでしょうか?4にはあったのだろうか?最適化されていない遅いコンパイラがあっただけだ。
.NETではバイトコードはなく、起動時にすべてがネイティブのマシンコードにコンパイルされ、特定のプロセッサーに最適化される。最初のコンパイルにかかる時間が重要な場合は、ngen http://msdn.microsoft.com/ru-ru/library/6t9t5wcf.aspx を使ってください。
そしてテスト興味深いですね
私は個人的に、説明されている方法のうち2つしか使っていません。COM-interopがどのように役立つのか理解できなかったが、これはおそらくイメージを完全にするためだろう。記事は5です。
- msdn.microsoft.com
彼らはどのようなバイトコードから逃げていたのか?彼らはそれを4で持っていたのだろうか?最適化されていない遅いコンパイラがあっただけだ。
MQL4にはバイトコードがあったが、MQL5はバイトコードにコンパイルされ、実行前にネイティブのx86またはx64にプリコンパイルされる。MQL5は.NETのように振る舞う
言語としてのMQL5はさらに開発され(開発者はより多くの機能とC++とのより良い互換性を求めている)、オプティマイザが改良される予定である。
最新のビルドでは、#resourceを介してEX5ファイルに直接リソース(.BMPと.WAV)をインクルードできるようになりました。これは、MetaTrader 5プラットフォーム用の本格的なアプリケーションを開発・販売するための良い基盤となります。MQL5マーケットのベータ版は間もなくリリースされ、開発者であれば誰でも(厳正な審査後に)アプリケーションを販売 できるようになり、すべてのトレーダーはこのショップに直接アクセスできるようになります。
VS C#用のアンマネージドエクスポート 用のテンプレートをコンパイルできないのは私だけでしょうか?
私はこの記事からテンプレートを入手し(完全なものではありません、dllが不足しています)、R. Gieseckeのライブラリで補足しました。Gieseckeのライブラリはこちらhttp://sites.google.com/site/robertgiesecke/Home/uploads、
オリジナルのテンプレートをR.Gieseckeからオリジナルのテンプレートを取り出し、2つのテンプレートの混合物を作りましたが、何も出てきませんでした。
オリジナルのテンプレートをコンパイルすると、コンパイラーは次のように表示します:
------ Построение начато: проект: UnmanagedExportLibrary8, Конфигурация: Debug Any CPU ------ Построение начато 15.03.2011 19:02:04. CoreCompile: C:\Windows\Microsoft.NET\Framework\v4.0.30319\Csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /errorreport:prompt /define:DEBUG;TRACE /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\System.Core.dll" /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Data.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll /debug+ /debug:full /out:obj\Debug\UnmanagedExportLibrary8.dll /target:library DllExport\DllExportAttribute.cs UnmanagedExports.cs Properties\AssemblyInfo.cs CopyFilesToOutputDirectory: Копирование файла из "obj\Debug\UnmanagedExportLibrary8.dll" в "bin\Debug\UnmanagedExportLibrary8.dll". UnmanagedExportLibrary8 -> d:\Programming\Visual Studio 2010\Projects\UnmanagedExportLibrary8\UnmanagedExportLibrary8\bin\Debug\UnmanagedExportLibrary8.dll Копирование файла из "obj\Debug\UnmanagedExportLibrary8.pdb" в "bin\Debug\UnmanagedExportLibrary8.pdb". AfterBuild: ILDasm: calling 'C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\ildasm.exe' with /quoteallnames /unicode /nobar /linenum "/out:c:\Temp\tmpF417\UnmanagedExportLibrary8.il" "d:\Programming\Visual Studio 2010\Projects\UnmanagedExportLibrary8\UnmanagedExportLibrary8\bin\Debug\UnmanagedExportLibrary8.dll" ILDasm: ildasm 'C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\ildasm.exe' returned gracefully. d:\Programming\Visual Studio 2010\Projects\UnmanagedExportLibrary8\UnmanagedExportLibrary8\bin\Debug\UnmanagedExportLibrary8.dll : Export warning EXP0009: Platform is AnyCpu, creating binaries for each CPU platform in a separate subfolder... ILAsm: Found method: UnmanagedExportLibrary8.UnmanagedExports..method private hidebysig static float64 'AddDays'(float64 'dateValue', int32 'days') cil managed ILAsm: Removing RGiesecke.DllExport.DllExportAttribute from UnmanagedExportLibrary8.UnmanagedExports.AddDays ILAsm: Parsing 242 lines of IL took 66 ms. ILAsm: calling 'C:\Windows\Microsoft.NET\Framework\v2.0.50727\ILAsm.exe' with /nologo "/out:d:\Programming\Visual Studio 2010\Projects\UnmanagedExportLibrary8\UnmanagedExportLibrary8\bin\Debug\x86\UnmanagedExportLibrary8.dll" "c:\Temp\tmpF417\UnmanagedExportLibrary8.x86.il" /DLL "/resource=c:\Temp\tmpF417\UnmanagedExportLibrary8.res" /debug ILAsm: ILAsm 'C:\Windows\Microsoft.NET\Framework\v2.0.50727\ILAsm.exe' returned gracefully. d:\Programming\Visual Studio 2010\Projects\UnmanagedExportLibrary8\UnmanagedExportLibrary8\DllExport\RGiesecke.DllExport.targets(8,5): error : d:\Programming\Visual Studio 2010\Projects\UnmanagedExportLibrary8\UnmanagedExportLibrary8\DllExport\RGiesecke.DllExport.targets(8,5): error : Assembling 'c:\Temp\tmpF417\UnmanagedExportLibrary8.x86.il' to DLL --> 'd:\Programming\Visual Studio 2010\Projects\UnmanagedExportLibrary8\UnmanagedExportLibrary8\bin\Debug\x86\UnmanagedExportLibrary8.dll' d:\Programming\Visual Studio 2010\Projects\UnmanagedExportLibrary8\UnmanagedExportLibrary8\DllExport\RGiesecke.DllExport.targets(8,5): error : Source file is UNICODE d:\Programming\Visual Studio 2010\Projects\UnmanagedExportLibrary8\UnmanagedExportLibrary8\DllExport\RGiesecke.DllExport.targets(8,5): error : d:\Programming\Visual Studio 2010\Projects\UnmanagedExportLibrary8\UnmanagedExportLibrary8\DllExport\RGiesecke.DllExport.targets(8,5): error : Assembled method RGiesecke.DllExport.DllExportAttribute::.ctor d:\Programming\Visual Studio 2010\Projects\UnmanagedExportLibrary8\UnmanagedExportLibrary8\DllExport\RGiesecke.DllExport.targets(8,5): error : Assembled method RGiesecke.DllExport.DllExportAttribute::.ctor d:\Programming\Visual Studio 2010\Projects\UnmanagedExportLibrary8\UnmanagedExportLibrary8\DllExport\RGiesecke.DllExport.targets(8,5): error : Assembled method RGiesecke.DllExport.DllExportAttribute::.ctor d:\Programming\Visual Studio 2010\Projects\UnmanagedExportLibrary8\UnmanagedExportLibrary8\DllExport\RGiesecke.DllExport.targets(8,5): error : Assembled method RGiesecke.DllExport.DllExportAttribute::get_CallingConvention d:\Programming\Visual Studio 2010\Projects\UnmanagedExportLibrary8\UnmanagedExportLibrary8\DllExport\RGiesecke.DllExport.targets(8,5): error : Assembled method RGiesecke.DllExport.DllExportAttribute::set_CallingConvention d:\Programming\Visual Studio 2010\Projects\UnmanagedExportLibrary8\UnmanagedExportLibrary8\DllExport\RGiesecke.DllExport.targets(8,5): error : Assembled method RGiesecke.DllExport.DllExportAttribute::get_ExportName d:\Programming\Visual Studio 2010\Projects\UnmanagedExportLibrary8\UnmanagedExportLibrary8\DllExport\RGiesecke.DllExport.targets(8,5): error : Assembled method RGiesecke.DllExport.DllExportAttribute::set_ExportName d:\Programming\Visual Studio 2010\Projects\UnmanagedExportLibrary8\UnmanagedExportLibrary8\DllExport\RGiesecke.DllExport.targets(8,5): error : d:\Programming\Visual Studio 2010\Projects\UnmanagedExportLibrary8\UnmanagedExportLibrary8\DllExport\RGiesecke.DllExport.targets(8,5): error : ***** FAILURE ***** d:\Programming\Visual Studio 2010\Projects\UnmanagedExportLibrary8\UnmanagedExportLibrary8\DllExport\RGiesecke.DllExport.targets(8,5): error : в RGiesecke.DllExport.Parsing.IlParser.RunILTool(String installPath, String toolFileName, String requiredPaths, String workingDirectory, String settingsName, String arguments, String toolLoggingCode, String verboseLoggingCode, DllExportNotifier notifier, Int32 timeout) в RGiesecke.DllExport.Parsing.ILAsm.RunCore(CpuPlatform cpu, String fileName, String ressourceParam, String ilSuffix) в RGiesecke.DllExport.Parsing.ILAsm.Run(String outputFile, String ilSuffix, CpuPlatform cpu) в RGiesecke.DllExport.Parsing.ILAsm.ReassembleFile(String outputFile, String ilSuffix, CpuPlatform cpu) в RGiesecke.DllExport.DllExportWeaver.RunILAsm(ILAsm ilAsm) в RGiesecke.DllExport.DllExportWeaver.Run() в RGiesecke.DllExport.MSBuild.DllExportTask.Execute() СБОЙ построения. Затраченное время: 00:00:01.85 ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
他のテンプレートをコンパイルしても同じです。
システム:W7 x64 SP1 Home Prem Lic.
IDE: VS 2010.
Googleは助けにはなりません(。
私は手動でプロジェクトDLLを作成し、R.Gieseckeの勧告に従ってそれを補った。Giesecke, no result either.
アドバイスをお願いします。
- sites.google.com
私はVS C#にアンマネージドエクスポート用のテンプレートをコンパイルしていない?
記事からテンプレートを取った(それは完全ではない、DLLを欠いていない)Rのライブラリに追加します。Gieseckeはここで http://sites.google.com/site/robertgiesecke/Home/uploads 、
2つのテンプレートの混合物をしたように、R. Gieseckeから元のテンプレートを取ったが、それは動作しません。
オリジナルのテンプレートをコンパイルすると、コンパイラーは次のように生成する:
他のパターンを同じようにコンパイルすると
システム: W7 x64 SP1 Home Prem Lic.
IDE: VS 2010.
Googleは助けにはなりません(。
Dllは手動でプロジェクトを作成し、Rの推奨に従ってそれを補完します。Giesecke、結果はまた利用できない。
plizアドバイスを助ける。
こんにちはkPVT、
Windows7 - XPの下位互換モードは、Win7に何かありますか?もしdllが32ビットモードで動作するのであれば、64ビットに再コンパイルしないと動作しないということになります。
stackoverflow.comでRGiesecke本人に聞いてみます。
よろしくお願いします、
インベスティオ
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事 アンマネージドのエクスポートを使用した MQL5へのC#コードのエクスポーズ はパブリッシュされました:
本稿ではMQL5 コードとマネージドの C# 間の異なる連携手法を提供します。またC# に対してMQL5を整理する方法および MQL5 スクリプト内にてエクスポートされたDLL関数を呼びだす方法例も提供します。ここでお話する例がマネージドのコードで DLLを書くことに関する将来的な研究の基になると信じています。本稿はまたすでにC#で実装されている多くのライブラリを使用するために MetaTrader にドアを開けるものです。
作者: investeo