[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 291

 
alsu >> :

"라이브러리"(#import를 사용하여 함수가 추출됨)와 "포함된 헤더 파일"(#include)의 개념을 혼동하고 있습니다.


라이브러리는 라이브러리 폴더에 있으며, 해당 소스는 표시기 및 전문가와 같이 *.mq4 확장자를 가지며 *.ex4 파일로 컴파일됩니다(여기에서 기성 기능을 다음과 같은 다른 프로그램으로 가져옵니다.

라이브러리가 올바르게 컴파일되려면 원칙적으로 먼저 #property 라이브러리 지시문을 작성해야 합니다.

포함된 헤더 파일은 다양한 프로그램의 기성품 코드를 포함하는 데 사용되며, 포함 폴더에 위치하며, *.mqh 확장자를 가지며, #을 사용하여 프로그램의 텍스트(즉, 텍스트)에 포함됩니다. include <...> 지시문을 사용하면 .to가 있으므로 별도로 컴파일할 필요가 없습니다. 그들은 메인 프로그램과 함께 컴파일됩니다.

그건 그렇고, 이미 #property 라이브러리가 있는 템플릿에 따라 라이브러리가 생성되기 전에는 템플릿을 변경했거나 포함하는 것을 잊은 이유를 아무도 모릅니다.

추신 알수가 아니었다면 질문자가 무엇을 알고 싶어하는지 이해하지 못했을 것입니다. 나는 늙어갑니다.

 
Urain >> :

그건 그렇고, 이미 #property 라이브러리가 있는 템플릿에 따라 라이브러리가 생성되기 전에는 템플릿을 변경했거나 포함하는 것을 잊은 이유를 아무도 모릅니다.

추신 알수가 아니었다면 질문자가 무엇을 알고 싶어하는지 이해하지 못했을 것입니다. 나는 늙어갑니다.

템플릿을 수동으로 편집할 수 있습니다. :)

 
alsu >> :

템플릿을 수동으로 편집할 수 있습니다. :)

예, 예, 알고 있습니다. 그러나 한 번에 오류를 찾기 위해 2일을 보냈지만 비즈니스는 새 빌드에서 다른 템플릿에 있습니다.

 
Urain >> :

.. 질문자가 무엇을 알고 싶어하는지 알 수 없다면 나는 늙어가고 있습니다.

경험 많은 노인들이여, "요청자"의 라이브러리 코드 를 보고 작성자가 작성할 때 염두에 두었던 내용을 설명하십시오.

 

죄송합니다.

많은 것이 쓰여졌지만 여전히 질문에 대한 답변을 이해하지 못합니다. 내가 할 수없는 것을 설명하기 위해 다시 시도 할 것입니다.

#include<...> 지시문을 삽입한 Expert Advisor를 만든 다음 코드 조각으로 포함된 헤더 파일을 만들었다고 가정합니다.

고문을 편집하고 거래에 포함시켰습니다. 모든 것이 작동합니다. Sergei Kovalev의 인용문에 따르면 다음과 같습니다.

"... ex4 파일이 자급자족한다고 추가할 수도 있습니다. 작동하려면
포함에 사용자 정의 함수의 소스 코드가 포함될 필요는 없습니다.
ex4 파일을 복사하여 다른 거래자에게 전송하여 사용할 수 있습니다.

생산 기술에 구애받지 않고 완벽하다"고 말했다.

내 고문을 복사하여 다른 컴퓨터, 다른 거래자에게 전송합니다. 그 후 EA는 작동을 원하지 않고 #include<...>라는 함수가 없다고 씁니다. 즉 , 포함된 헤더 파일이 보이지 않고 컴파일되지 않습니다.

다음은 EA 및 포함된 헤더 파일의 예입니다. 질문에 무엇이 문제인지 확인하세요.

//+----------------------------------------------- --------------------+
//| qibliot.mq4 |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+----------------------------------------------- --------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#속성 링크 "http://www.metaquotes.net"

#include <PointZigZag.mqh>

//+----------------------------------------------- --------------------+
//| 전문가 시작 기능 |
//+----------------------------------------------- --------------------+
정수 시작()
{포인트지그재그();
Comment("판매-y21 = ",y21," ","장소-x21 = ",x21);
반환(0);
}

//+----------------------------------------------- --------------------+

zhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzh

//+----------------------------------------------- --------------------+
//| PointZigZag.mqh |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+----------------------------------------------- --------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#속성 링크 "http://www.metaquotes.net"

외부 정수 ExtDepth = 12; //------- 지그재그 변수
extern int ExtDeviation = 5; //------- 지그재그 변수
extern int ExtBackstep = 3; //------- 지그재그 변수
외부 정수 ShiftBars = 2; //------- 지그재그 변수
//------- ZigZag 변수 --------------------------------------- ---
더블 y3, y2, y1, zz;//
정수 x3, x2, x1, sh;//
더블 x31, x21, x11; // 지그재그 변곡점
이중 y31, y21, y11; // 지그재그 변곡점
더블 TimeZZ, TimeOO;
//------------------------------------------------ ------------------------------

더블포인트지그재그()
{y3=0;y2=0;y1=0;
sh=시프트바;
동안 (y3==0)
{zz=iCustom(NULL, 0, "지그재그", ExtDepth, ExtDeviation, ExtBackstep, 0, sh);
if (zz!=0 && zz!=EMPTY_VALUE)
{if (y1==0) { x1=sh; y1=zz; }
그렇지 않으면 (y2==0) { x2=sh; y2=zz; }
그렇지 않으면 (y3==0) { x3=sh; y3=zz; }}쉬++;
}
if (높음[x1]>높음[x2])
{x11=높음[x1]; x21=낮음[x2]; x31=높음[x3];
y11=0;y21=0;y31=0;TimeZZ=시간[x2];
}또 다른
{y11=낮음[x1]; y21=높음[x2]; y31=낮음[x3];
x11=0;x21=0;x31=0;TimeZZ=시간[x2];}

}

//+----------------------------------------------- --------------------+
 
컴파일러가 변경하지 않고 던지는 오류에 대한 줄을 알려주십시오.
 
gvi2504 >> :

죄송합니다.

많은 것이 작성되었지만 여전히 질문에 대한 답변을 이해하지 못합니다. 내가 할 수없는 것을 다시 설명하려고 노력할 것입니다.

#include<...> 지시문을 삽입한 Expert Advisor를 만든 다음 코드 조각으로 포함된 헤더 파일을 만들었다고 가정합니다.

고문을 편집하고 거래에 포함시켰습니다. 모든 것이 작동합니다. Sergei Kovalev의 인용문에 따르면:

"... ex4 파일이 자급자족한다고 추가할 수도 있습니다. 작동하려면
포함에 사용자 정의 함수의 소스 코드가 포함될 필요는 없습니다.
ex4 파일을 복사하여 다른 거래자에게 전송하여 사용할 수 있습니다.

생산 기술에 구애받지 않고 완벽하다"고 말했다.

내 고문을 복사하여 다른 컴퓨터, 다른 거래자에게 전송합니다. 그 후 EA는 작동을 원하지 않고 #include<...>라는 함수가 없다고 씁니다. 즉 , 포함된 헤더 파일이 보이지 않고 컴파일되지 않습니다.

다음은 EA 및 포함된 헤더 파일의 예입니다. 질문에 무엇이 문제인지 확인하십시오.


당연히 그러한 지시에 따르면 포함된 파일은 include 디렉토리의 다른 컴퓨터에 있어야 하며 두뇌를 전혀 낭비하지 말고 한 시트에 모든 것을 작성하고 함수로 코드 조각을 선택하고 드라이브로 이동해야 합니다. 시트 끝이 발밑에 걸리지 않고 모든 것이 켜지거나 꺼지지 않도록하십시오. 왜 자신의 삶을 힘들게 만드십니까? #include 및 #import 지시문은 1000개가 넘는 행 수와 수십 개의 개별 프로그램으로 구성된 프로그램 콤플렉스를 작성하는 데 필요합니다. 그렇지 않으면 좋은 것보다 혼란이 더 큽니다.

 
alsu >> :
컴파일러가 변경하지 않고 던지는 오류에 대한 줄을 알려주십시오.

컴파일러는 다음 줄을 씁니다.

'PointZigZag.mqh' - 프로그램 파일 D:\Program Files\MetaTrader2\experts\Kibliot.mq4를 열 수 없습니다 (10, 1)

 
gvi2504 >> :

컴파일러는 다음 줄을 씁니다.

'PointZigZag.mqh' - 프로그램 파일 D:\Program Files\MetaTrader2\experts\Kibliot.mq4를 열 수 없습니다 (10, 1)

위의 답변 참조 - 포함된 파일 PointZigZag.mqh를 포함 폴더에 넣으십시오.

 
alsu >> :

위의 답변 참조 - 포함된 파일 PointZigZag.mqh를 포함 폴더에 넣으십시오.

또한 Kibliot.mq4 파일을 컴파일해야 하는 모든 컴퓨터에서.