#import "Test.dll"void f( constint & x[] );
#import
voidOnStart ()
{
int x[ 1 ] = { 1 };
int y = x[ 0 ];
Print ( "y=" , y ); // здесь y = 1
f( x );
Print ( "y=" , y ); //а здесь y = 2, но я его явно не менял
}
내가 틀릴 수 있지만 NULL은 변수를 0으로 설정하는 데 사용할 때 변수를 0으로 초기화합니다.
도움말 말한다
Синтаксически тип void является фундаментальным типом наравне с типами char , uchar , bool , short , ushort , int , uint , color , long , ulong , datetime , float , double и string .
Этот тип используется либо для указания того, что функция не возвращает значения, либо в качестве параметра функции обозначает отсутствие параметров.
Предопределенная константная переменная NULL имеет тип void . Она может быть присвоена переменным любых других фундаментальных типов без преобразования.
Также допускается сравнение переменных фундаментальных типов со значением NULL
이론적으로 NULL을 사용할 때 변수는 string형 변수의 경우와 같이 비어 있어야 하며 0도 -도 +도 포함하지 않아야 합니다.
문자열 유형 의 변수를 초기화 할 때 text = NULL; 변수는 비어 있고 다른 유형이 초기화될 때 0이 할당됩니다.
metaeditor(64)?.exe에는 컴파일러가 내장되어 있지 않습니까? 따라서 mql(64)?.exe는 자체적으로 매우 "별도의" 자급자족 컴파일러입니다.
따라서 내 질문은 정확했고 귀하의 대답은 "어쨌든 명령줄에서 ex? 파일의 지능적인 배치가 수행되지 않습니다. 이것은 편집기에서만 수행할 수 있으며 창 모드에서만 수행할 수 있습니다."입니다. 완전히 대답합니다.
사실 감사합니다.
MetaEditor에서 R:\로 검색 할 때 지정된 경로
검색 결과에 R:\\로 나타납니다.
작업에는 영향을 미치지 않지만 숨겨진 오류가 있는지 확인하십시오(예: R:\\\\\\\ 경로를 설정할 수 있음).
Windows 10, MT4 Build 854 이상한 제목(확산 대신 "!"이라고 표시됨), 모든 메뉴 항목이 번역되지 않고 메뉴에 빈 항목이 있습니다.
여기서 f()가 #import에서 잘못 설명된 것이 분명하지만 문제는 x가 변경된 것이 아니라 y가 변경된 것입니다.
컴파일러가 x - 휘발성을 고려하는 것이 합리적일 수 있습니다(.dll에서 호출된 함수에 대한 참조로 전달된 변수에 영향을 미치는 코드를 최적화하지 않는다는 의미에서). 이러한 최적화가 없으면 거의 감지할 수 없으며 그 결과가 결과에 중요하다는 사실을 고려합니다.
Windows 10, MT4 Build 854 이상한 제목(확산 대신 "!"이라고 표시됨), 모든 메뉴 항목이 번역되지 않고 메뉴에 빈 항목이 있습니다.
내가 틀릴 수 있지만 NULL은 변수를 0으로 설정하는 데 사용할 때 변수를 0으로 초기화합니다.
도움말 말한다
이론적으로 NULL을 사용할 때 변수는 string형 변수의 경우와 같이 비어 있어야 하며 0도 -도 +도 포함하지 않아야 합니다.
문자열 유형 의 변수를 초기화 할 때 text = NULL; 변수는 비어 있고 다른 유형이 초기화될 때 0이 할당됩니다.
Windows 10, MT4 Build 854 이상한 헤더(spread는 "!"로 대체됨)
Spread는 이름이 너무 광범위합니다. MT5에서는 Overview와 Quote Window 모두에서 항상 그랬습니다!
Spread는 이름이 너무 광범위합니다. MT5에서는 Overview와 Quote Window 모두에서 항상 그랬습니다!
빌드 854에는 또 다른 흥미로운 버그가 있습니다.
나는 전문가에 있는 테스트 폴더를 가지고 있습니다. 여기에는 소스 코드와 test라는 실행 프로그램이 포함되어 있습니다.
전문가의 메인 디렉토리에는 test라는 파일이 있고, 소스코드와 실행파일도 있어서 후자를 컴파일할 때 테스트용 터미널에 첫 번째 파일을 설치한다.
즉, Experts\\Test라는 이름과 위치로 Advisor를 테스트하고 싶은데, 터미널에서 컴파일할 때마다 Experts\\Test\\Test가 자동으로 설정되어 매번 Advisor를 재배열해야 합니다.
스트레스다...
친애하는 상인 여러분, 안녕하세요.
한 가지 문제를 해결하도록 도와주세요.
SymbolInfoDouble( _Symbol, SYMBOL_TRADE_TICK_VALUE ) 함수는 #IBM_L 기호에 대해 0을 리턴합니다.
터미널 LiteForex MT5 터미널 x64 빌드 1150이 시작되었습니다(Liteforex Investments Limited).
계정 통화 EUR.
응용 프로그램에서 스크립트를 테스트합니다.
로그 출력:
2015.08.12 22:23:51.930 TestTickValue (#IBM_L,H1) Tick value = 0.00000.
거래량을 계산하려면 이 값이 필요합니다.
double lots = loss * cSymbolInfo.TickSize() / ( priceDiff * cSymbolInfo.TickValue() );
코드에서 TickValue()를 호출하기 전에 cSymbolInfo.Name(symbol)을 올바르게 선택했습니다. 이 코드는 EURUSD와 같은 다른 상품에서 작동합니다.