デベロッパーズ!作ったものをテストしたりもするのですか? - ページ 15

 

開発者の皆様へ実際にリリースしたものをテストしているのでしょうか?

Windows 8.1 64bit(ライセンス版)をパソコンにインストールしました。そして、ある問題が発生しました。まず、メタトレーダー4をオートランでC: \Program Files (x86)にインストールしました。ファイルを書き込もうとすると、問題が発生するようになった。このWindowsはセキュリティが高く、私は唯一のユーザーであり、コンピュータの管理者は、私が「管理者として」をクリックするまで、システムディレクトリで何もできないことが判明した。フォーラムを読んで、メタトレーダー4をProgram Files (x86)ではなく、Cドライブに特別に作成した別のフォルダに再インストールし、MT4をプレインストールすることにしました。しかし、うまくいかなかった。デインストーラは、あなたにはそれを行う権利がないと言っています。本当に我慢できず、頑張ってアンインストールしました。できることはすべてやった。管理者として、Securityの全員に何でもできるようにする。Windowsの再インストールまでして、結局2日近くかかりました。その時、偶然にもMT Englishのフォーラムで、Win XP SP3の互換性モードを確認し、管理者として操作することにチェックを入れなければならないという小さなメッセージを見つけました。その後、管理者のみで端末をデインストールしました。私は少し安堵のため息をついた。

そこで、メタトレーダー5を導入することにしました。システムディレクトリにインストールするのは危険と知りつつ、Cドライブの専用フォルダにインストールしたところ、インストーラが64ビット版をインストールするかどうか聞かずに、強制的に64ビット版のMT5をインストールしてくれました。と思って仕事をしてみました。インジケーターの作成、ファイルの書き込み、DLLの接続を試みるなど、いくつかの手順を経た後、インストールディレクトリにFiles and Librariesがないことが分かりました。しかし、DLLファイルはもちろん、Code Baseからダウンロードしたサンプルさえも作成されず、コンパイルのために呼び出されることもなかった。原因究明に多くの時間と神経を費やしました。それから、TerminalPathをコメントアウトしただけなのですが、どこに消えてしまうのでしょうか?C:\Users...\AppData フォルダまで判明しました。探してみたのですが......ダメでした。全く掲載されていませんでした。そして、なぜかそれが隠されていることに気がついたのです。そして、隠しフォルダを表示できるようにする方法をインターネットで見つけました。はい、必要なフォルダとファイルはすべてC:⇄AppData⇄Roaming⇄MetaQuotes⇄Terminalに現れました。余計なトラブルを避けるために、あえてシステムディレクトリは避けているのですが。いいえ、インストーラーが作成したものです。つまり、私がこのフォルダーに辿り着くまで、その単純なユーザーは私のようなことはできなかったということがお分かりいただけると思います。

次に、DLLを接続してみました。水槽のように静かで、どこに突っ込もうが見えません。C++のVS2013 Desktop、最新版で作成し、MT4での動作に成功しました。10分でできるDLLの書き方」の記事で例を見た後、半日かけてバカみたいに接続を試みています。その後、パスを変えてやっとターミナルが見て、64bit DLLでないと警告して接続を拒否しました。もちろん、すべての例でDLLはWin32アプリケーションとして作成されており、64ビットを作成しないことは理解しています。さて、次はどうするか?MT5 - 32bitで実験してみることにしました。私のインストーラーではそれができず、強制的に64ビットをインストールさせられました。その後、あるフォーラムでMT5の32ビットはコマンドラインからインストールできる{mt5setup.exe /32}と知り、32ビット版をインストールしました。 DLLを接続し、すべてうまくいきました。64bit版は死んでて問題のあるアプリケーションだったので、アンインストールしました。

開発者がユーザーの肌に触れようとするために、あえてすべてを徹底的に説明したのです。

質問です。問題は、システムディレクトリにインストールしなかったにもかかわらず、インストーラがすべてのものを隠しフォルダに入れてしまい、少なくともCode Baseのインジケータやスクリプトからダウンロードしたものをそこに入れることはできないことです。そして、自分の仕事の成果を書き込むためのFilesフォルダにたどり着けなかった?正直なところ、これらの問題、失礼ながら時間と神経エネルギーと欠陥の吸血鬼化という表現で、MT5を遠くに送り出したいという感情的な衝動に駆られたのです。しかし、私は力づくで抵抗した。

そして、2つ目の質問です。32ビットのDLLは64ビット版でも使えるようになってるんですか、64ビット端末はそれがないと死んでるようなものですから。

そしてもう一つ質問です。C#のDLL接続で、64bitのDLLを問題なく作成できるようにする予定はありますか?

そしてもうひとつ。マイクロソフトは、主要なプログラミング言語として、C++をC#に置き換えるという、ほとんど強引な試みを進めている。最新のVS2013では、フォームで作業を設定する機能まで削除され、フォーラムでの「なぜ?」という質問には、「もっと完璧なC#を使ってみたらどうですか?そうすると、長い目で見ると、C++は2位になったり、完全になくなったりする可能性があることがわかります。新しい端末は、C#を言語の基本として作られることになっているのでしょうか。

 
ANG3110:

そこで、メタトレーダー5を導入することにしました。システムディレクトリにインストールするのは危険と知りつつ、Cドライブに特別に作ったフォルダにインストールしました。と思って仕事をしてみました。インジケーターの作成、ファイルの書き込み、DLLの接続を試みるなど、いくつかの手順を経た後、インストールディレクトリにFiles and Librariesがないことが分かりました。しかし、DLLファイルはもちろん、Code Baseからダウンロードしたサンプルさえも作成されず、コンパイルのために呼び出されることもなかった。原因究明に多くの時間と神経を費やしました。それから、TerminalPathをコメントアウトしただけなのですが、どこに消えてしまうのでしょうか?C:\Users...\AppData フォルダまで判明しました。探してみたのですが......ダメでした。全く掲載されていませんでした。そして、なぜかそれが隠されていることに気がついたのです。そして、隠しフォルダを表示できるようにする方法をインターネットで見つけました。はい、C:Users...㊙AppData㊙Roaming㊙MetaQuotes㊙Terminalに必要なフォルダとファイルがすべて現れました。余計なトラブルを避けるために、あえてシステムディレクトリは避けているのですが。いいえ、インストーラーが作成したものです。つまり、単純なユーザーには、私がこのフォルダにたどり着く前にやっていたようなことはまったくできない、ということがおわかりいただけたでしょうか。


64bit端末をインストールしたら、すぐに開かず、まずショートカットを作成し、オブジェクトがあるプロパティに/portableキーを入れる。

D:\MT5terminal64.exe /portable のようにします。

そうすると、すべてのフォルダがどこかに表示されるのではなく、端末のフォルダに表示されるようになります

 
Olegts:

D:\MT5terminal64.exe /portable のようにします。

そうすると、すべてのフォルダはどこにも表示されず、端末のフォルダに表示されるようになります。

と、編集者向けにも

と、レジストリのいたるところで、ダブルクリックでmqlファイルを開くことができるようになっています。

 
sergeev:

とともに、編集者のために

と、レジストリのいたるところで、ダブルクリックでmqlファイルを開くことができるようになっています。

あなたは司会者か何かですか?

その人は問題を抱えていて、私はそれを部分的に解決する方法を伝えました。なぜ皮肉を言っているのですか?

 
Olegts:

あなたはモデレーターか何かですか?

その人は問題を抱えていて、私はそれを部分的に解決する方法を提案したのですが、なぜ皮肉ったのでしょうか?

子供の頃、モデレーターに怯えてたのか?

私は、あなたの不完全な答えを拡大解釈しただけです。

部分的に」解決する方法をアドバイスしたとご自身で書かれていますが、なぜその半分が必要なのでしょうか?

 
sergeev:

子供の頃、司会者に威張られたことがあるのか?

不完全な回答を拡大解釈しただけです。

あなたは、「部分的に」アドバイスしたと書いていますが、なぜ、中途半端な対策が必要なのでしょうか?

個人的にはポータブルでないと仕事にならない。別フォルダに20台ほどの端末があり、MQL5などのフォルダの場所もよく分かっていて、知らない場所にはない。ソフトウエアが作った8.1という奇跡のようなものでトラブルになり、メタ引用が原因だと考えているということです。彼は助けられるべきで、優越感を示すべきでない。

 
ショートカットにターミナルへのパスが記載されていないのはなぜですか?ビル・ゲイツのことだ、何もせずに卵を投げつけることはないだろう)。
 
Olegts:

個人的にはポータブルでないと仕事にならないので、別フォルダを用意しています。

ハードディスクに数ギガでFAT32入れてるから ポータブルもいらないし。

 
ANG3110:

開発者の皆様へ実際にリリースしたものをテストしているのでしょうか?

テストしています。そして、それを13年間も公言してきたのです。


Windows 8.1 64bit(ライセンス版)をパソコンにインストールしました。そして、ある問題が発生しました。まず、メタトレーダー4をオートランでC: \Program Files (x86)にインストールしました。ファイルを書き込もうとすると、問題が発生するようになった。このWindowsはセキュリティが高く、私は唯一のユーザーであり、コンピュータの管理者は、私が「管理者として」をクリックするまで、システムディレクトリで何もできないことが判明した。フォーラムを読んで、メタトレーダー4をProgram Files (x86)ではなく、Cドライブに特別に作成した別のフォルダに再インストールし、MT4をプレインストールすることにしました。しかし、うまくいかなかった。デインストーラは、あなたにはそれを行う権利がないと言っています。本当に我慢できず、頑張ってアンインストールしました。できることはすべてやった。管理者として、Securityの全員に何でもできるようにする。Windowsの再インストールまでして、結局2日近くかかりました。その時、偶然にもMT Englishのフォーラムで、Win XP SP3の互換性モードを確認し、管理者として操作することにチェックを入れなければならないという小さなメッセージを見つけました。その後、管理者のみで端末をデインストールしました。私は少し安堵のため息をついた。

古いプログラムがWindows 8にうまく適応していないという、よくある問題に遭遇していますね。つまり、OSのセキュリティに問題があるのです。そう、Windows 8のマイクロソフトは、本当にみんなを壁に追い詰めて、好きなところにデータを書き込んで保存することを許さなくなったのです。

そのような問題を解決するために、私たちはMetaTrader 5と同様に最新のデータストレージモデルを使用する新しいMetaTrader 4をリリース します。


そこで、メタトレーダー5を導入することにしました。にインストールすることはすでに知っている。

インストーラーが64bit版をインストールするかどうか聞かず、強制的にMT5 64bitをインストールしてしまった。と思って仕事をしてみました。インジケーターの作成、ファイルの書き込み、DLLの接続を試みるなど、いくつかの手順を経た後、インストールディレクトリにFiles and Librariesがないことが分かりました。しかし、DLLファイルはもちろん、Code Baseからダウンロードしたサンプルさえも作成されず、コンパイルのために呼び出されることもなかった。原因究明に多くの時間と神経を費やしました。それから、TerminalPathをコメントアウトしただけなのですが、どこに消えてしまうのでしょうか?C:\Users...\AppData フォルダまで判明しました。探してみたのですが......ダメでした。全く掲載されていませんでした。そして、なぜかそれが隠されていることに気がついたのです。そして、隠しフォルダを表示できるようにする方法をインターネットで見つけました。はい、必要なフォルダとファイルはすべてC:⇄AppData⇄Roaming⇄MetaQuotes⇄Terminalに現れました。余計なトラブルを避けるために、あえてシステムディレクトリは避けているのですが。いいえ、インストーラーが作成したものです。つまり、私がこれらのフォルダに辿り着く前に行ったようなことは、単純なユーザーにはできないことを理解しているのです。

そうやって理屈をこねて、開発者を批判したり、アドバイスしたりするくせに、Windowsのセキュリティの基本的なルールを知らないんですね。以上で、OSからProgram Filesへの書き込み権限が付与されなくなりました。推奨される保存場所はAppDataのみです。

通常モードで作業している場合は、すべて問題ありません。すべてのデータが配置され、作業ディレクトリは「ファイル」→「データディレクトリを開く」で利用できます。


次に、DLLを接続してみました。水槽のように静かで、どこに突っ込んでも見えません。VS2013 Desktop in C++、最新版で作成し、MT4で問題なく動作しました。10分でできるDLLの書き方」の記事で例を見た後、半日かけてバカみたいに接続を試みています。その後、パスを変えてやっとターミナルが見て、64bitのDLLでないと警告して接続を拒否しました。もちろん、すべての例でDLLはWin32アプリケーションとして作成されており、64ビットを作成しないことは理解しています。さて、次はどうするか?MT5 - 32bitで実験してみることにしました。私のインストーラーではそれができず、強制的に64ビットをインストールさせられました。その後、フォーラムでMT5 32bitはコマンドラインからインストールできる{mt5setup.exe /32}と知り、32bit版をインストール。 DLLを繋いで動作させました。64ビット版は、死んだ問題のあるアプリケーションとしてアンインストールする必要がありました。

DLLが原因なら、64ビットモードで再コンパイルすればいい。

32ビットのライブラリが64ビットのプログラムで動作する、あるいは動作させるべきであると、壁に頭を打ち付けて思い込む必要はないのです。すでに近隣の掲示板で説明されているのですが、まだ理解できないふりをしているようですね。

開発者がユーザーの肌に触れることができるように、あえてすべてを詳細に記述したのです。

残念ながら、あなたの誤解を詳細に記述しています。表向きはプログラマーの言葉(DLL、ディレクトリ、プログラム)だが、本当は基本的なことが分かっていないのではないか。

質問です。なぜかというと、システムディレクトリにインストールしていないにもかかわらず、インストーラは、少なくともコードベースのインジケータやスクリプトからダウンロードしたものをそこに置くために、私がどうしても入ることのできない隠しフォルダにすべてを入れてしまうのです。そして、自分の仕事の成果を書き込むためのFilesフォルダにたどり着けなかった?正直なところ、これらの問題、失礼ながら時間と神経エネルギーと欠陥の吸血鬼化という表現で、MT5を遠くに送り出したいという感情的な衝動に駆られたのです。しかし、私は力づくで抵抗した。

なぜなら、それがマイクロソフトのルールだからです(^^)。Windows 8のリリースにより、マイクロソフトの言うとおりにするか、クライアントに書き込み禁止を設定するかのどちらかになっています。

それに対してディレクトリに作業ファイルを置いておきたい人のために、/portableスイッチがある。


そして、2つ目の質問です。32ビットのDLLは64ビット版でも利用できるようになるのでしょうか?64ビット端末はそれがないと死んでしまうようなものですから。

いや、原理的に(狂信的でなければ)技術的に不可能である。必要なのは64bitのライブラリです。


そしてもう一つ質問です。C#のDLL接続の機会を提供し、問題なく64ビットDLLを作成できるようにする予定はありますか?

通常のプログラムも簡単に64ビット版を作ることができます。どこで問題を思いついたのですか?


そしてもうひとつ。マイクロソフトは、主要なプログラミング言語として、C++をC#に置き換えるという、ほとんど強引な試みを進めている。最新のVS2013では、フォームで作業を設定する機能まで削除され、フォーラムでの「なぜ?」という質問には「もっと完璧なC#を使ってみたらどうですか?そうすると、長い目で見ると、C++は2位になったり、完全になくなったりする可能性があることがわかります。C#をベースにした新しい端末を作る予定なのでしょうか?

ビジネスを破綻させたくなったら、そうですねー、C#に乗り換えましょう。ちょうどいい方法でしょう。

MQL4/MQL5は、C#と同様に動作し、実行時に32ビットと64ビットのネイティブコードに自動的にドッキングします。

Выпущена бета-версия MetaTrader 4 Build 555 с обновленным языком MQL4 и Маркетом приложений - MQL4 форум
  • www.mql5.com
Выпущена бета-версия MetaTrader 4 Build 555 с обновленным языком MQL4 и Маркетом приложений - MQL4 форум
 

もちろん、私も完全に理解しています。

数ヶ月前にWindows XPからWindows 7/Windows 8に乗り換えた人は、必ずパターンを崩す。しかし、よく言われるように、誰もが自分自身の邪悪なピノキオなのです。これは、10年間自己欺瞞に満ち、オペレーティングシステムの変更に目をつぶってきたことの代償なのです。