MetaTrader 4 Build 529 ベータ版リリース、新コンパイラー搭載 - ページ 49

 
Interesting:
そして、コードなしでどのように助けるか?

コードは200行で、+全くコメントされていません(関数とその参照をOOPレールに翻訳しました)。

誰かが同じようなことに遭遇していると思ったのですが(私自身はコンストラクタとデストラクタを疑っており、ベースクラスと子孫クラスの両方にデフォルトで持っています(全く指定していません))。

必要ならコードを掲載しますよ、どうせなら自分用にコメントします。

でも、明日投稿します、もう寝ます。

 

Shell32.dllから ShellExecuteAを呼び出すと、このメッセージが表示されます。

shell32.dll :: ShellExecuteA, DLL not allowed
Access violation write 0x00000000 を呼び出して いただけませんか

私はこのように呼んでいます。

#import "shell32.dll"
int ShellExecuteA(int a0,文字列 a1,文字列 a2,文字列 a3,文字列 a4,int a5);
#import

追記:DLL呼び出し許可を有効にするのを忘れていましたが、DLL呼び出し許可を有効にすると、テスターを実行するとターミナルがクラッシュしてしまいます

 
VOLDEMAR:

オッパ、過去の声・・・。 もしかして、最初のビルドをお持ちではないでしょうか?

もちろん、Bild 541です。
 
Barbarian:

Shell32.dllから ShellExecuteAを呼び出すと、このメッセージが表示されます。

shell32.dll :: ShellExecuteA, DLL not allowed
Access violation write 0x00000000 を呼び出して いただけませんか

私はこのように呼んでいます。

#import "shell32.dll"
int ShellExecuteA(int a0,文字列 a1,文字列 a2,文字列 a3,文字列 a4,int a5);
#import

PS.DLLの呼び出し権限をオンにするのを忘れていたが、DLLの権限をオンにすると、テスターを実行すると端末がクラッシュしてしまう


文字列はユニコードになりました。

ユニコード版の関数を使用する必要があります。

#import "shell32.dll"
int ShellExecuteW(int a0,string a1,string a2,string a3,string a4,int a5);
#import

 
ALXIMIKS:

コードは200行で、+全くコメントされていません(関数とその参照をOOPレールに翻訳しました)。

誰かが同じようなことに遭遇していると思ったのですが(私自身はコンストラクタとデストラクタを疑っており、ベースクラスと子孫クラスの両方にデフォルトで持っています(全く指定していません))。

必要ならコードを掲載しますよ、どうせなら自分用にコメントします。

でも、今夜は寝てるので、明日投稿します。


もし、何も秘密がなければ、コードと再現のための手順、またはservicedeskを投稿してください。感謝

 
stringo:

文字列はUnicodeである。

ユニコード版の関数を使用する必要があります。

ああ、そんなに簡単じゃないんだ、まだ文字列リテラルの前にLを書く必要があるようだ。
 
digits:

509でコンパイルされたコードがEAから呼び出されたときに動作する理由を教えてください。

をEAで呼び出すと、このようなコードが処理されます。

しかし、ビルド540からMEでコンパイルした場合、EAログファイルにはこう書かれています。

そして、EAが正常に動作しない、あるいは全く動作しない。


ビルド541で試されましたか?

これまでのソースを元に再現を試みたが、成功しなかった。すべてのソースと詳細(OS、シンボル、ブローカー、インストールフォルダ、パーミッションなど)をserveskに投稿できますか?

 
ALXIMIKS:

クラッシュの考えられる原因を教えてください)

OOPでインジケータ内のメインの計算関数を作りました(数日前から勉強しています)。

すべて正常に動作しています(3000barで計算速度が2-3倍になりました)。

しかし、2つのインジケータを実行しようとすると クラッシュし、すべてがクラッシュします・・・・・。


すべてのソースと説明を添えて、そのままservicedeskに行くのがベストです。
 
void OnStart()
{
//---
//+------------------------------------------------------------------+
//| スクリプトは、ツールに関する 情報を表示します。
//+------------------------------------------------------------------+
Print("Symbol=",Symbol())。
Print("Point size in the quote currency=",MarketInfo(Symbol(),MODE_POINT));
Print("Minimum step of security price change in points=",MarketInfo(Symbol(),MODE_TICKSIZE));
}

LOG:

2013.11.15 12:43:11.716 ttt EURUSD,M1: 削除されました。

2013.11.15 12:43:11.716 ttt EURUSD,M1:セキュリティ価格変化の最小ステップ(ポイント)=1e-005.0

2013.11.15 12:43:11.716 ttt EURUSD,M1:Pip size in quote currency=1e-005.0

2013.11.15 12:43:11.716 ttt EURUSD,M1: Symbol=EURUSD

2013.11.15 12:43:11.707 ttt EURUSD,M1: 正常にロードされました。


 
HIDDEN:
void OnStart()
{
//---
//+------------------------------------------------------------------+
//| スクリプトは、ツールに関する情報を表示します。
//+------------------------------------------------------------------+
Print("Symbol=",Symbol())。
Print("Point size in the quote currency=",MarketInfo(Symbol(),MODE_POINT));
Print("Minimum step of security price change in points=",MarketInfo(Symbol(),MODE_TICKSIZE));
}

LOG:

2013.11.15 12:43:11.716 ttt EURUSD,M1: 削除されました。

2013.11.15 12:43:11.716 ttt EURUSD,M1:シンボルの価格変化の最小ステップ(ポイント)=1e-005.0

2013.11.15 12:43:11.716 ttt EURUSD,M1:Pip size in quote currency=1e-005.0

2013.11.15 12:43:11.716 ttt EURUSD,M1: Symbol=EURUSD

2013.11.15 12:43:11.707 ttt EURUSD,M1: 正常にロードされました。


出力されるデータの科学的な形式に戸惑うことはありませんか?

1e-005.0 = 0.00001.やはり5桁
小数点表示で印刷するには、Print 内の DoubleToStr を使用するか、Print の新バージョンである PrintFormat に移動します。