내 접근 방식. 코어 - 엔진. - 페이지 57

 
Реter Konow :

그것이 건설적이었다면 나는 이미 무료 버전을 출판했을 것입니다. 그러나 나는 어디에나 있고, 뚜렷하고, 설명할 수 없는 부정적인 것을 봅니다. 그리고 모든면에서. 이것이 내가 이해하려는 현상 입니다.

Peter, 1년 반 전에 나는 당신에게 개인적인 메시지를 썼습니다.

현상이 없습니다. 이해를 거부한다는 증거가 있습니다.
그리고 분명한 것은 당신이 구식 프로그래밍 방법을 사용하고 근본적으로 게으름 때문에 새로운 지붕 펠트를 배우고 싶지 않다는 것입니다.

 
Реter Konow :

C#을 알아야 합니다. DLL을 작성할 수 있어야 합니다. 양식과 MT 응용 프로그램 간의 상호 작용을 구성하고 생각할 필요가 있습니다.

모든 단계를 세분화하고 모든 것이 당신이 말하는 것처럼 정말 간단한지 봅시다. 나는 나 자신에게 관심이 있다.

DLL에 대한 코드를 게시하십시오.

흠 최대한 설명을 드린듯 해서 제가 못된 선생님인데 빨리 배웁니다)))

자, 자세히 시도해 보겠습니다.

1. C# 컴파일러를 다운로드하고 SharpDevelop http://www.icsharpcode.net/OpenSource/SD/Download/Default.aspx 를 다운로드하고 SharpDevelop 5용 다운로드(Frameworks 2.0 ~ 4.5.1) = 14Mb를 선택했습니다.

2. 설치, 실행

3. 새 프로젝트 만들기: 파일 - 새로 만들기 - 솔루션 - C# 폴더 - 클래스 라이브러리

4. 시각적 양식 추가: 파일 - 새로 만들기 - 새 파일(프로젝트 내에서 파일 만들기 클릭) - 폴더 C# - 폴더 Windows 응용 프로그램 - 양식

5. 전체 프로젝트가 준비되었습니다. 양식 디자이너를 열고 단추, 확인란, 탭, 그리드를 추가하고... 모든 Windows 표준 가젯

6. 프로젝트 이름이 있는 파일에 메인 코드를 작성합니다.

namespace Mylib
{
         /// <summary>
         /// Description of TestClass.
         /// </summary>
         public class TestClass
{
         static Form1 f= new Form1();
         public static void Run()
   {
        f.ShowDialog();
   }
}
}

7. F8 키를 누르고 프로젝트 폴더의 디스크에서 완성된 .dll을 찾습니다.

MT5에서는 다음 형식을 호출하는 전문가를 작성합니다.

 #import "Mylib.dll"
#import
//+------------------------------------------------------------------+
int OnInit ()
  {
   TestClass::Run();
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
void OnTick ()
  {
  }
//+------------------------------------------------------------------+

실행하고 컨트롤이 있는 기성품 창을 사용한 다음 MQL(OnTick() 또는 OnTimer() 에서 편리한 위치)에서 버튼 핸들러를 만들고 사용자가 요청 시 클릭한 것을 반환하는 C# 클래스를 만듭니다.

여기에 전문가와 .dll의 소스 코드를 첨부했습니다. 오늘은 너무 게을러서 컴퓨터 앞에 앉을 수 없습니다. 내일은 이 형식이 테스터에서 작동하지 않는 이유를 알아낼 것입니다. 네트워크에 많은 정보가 있으므로 개인용으로 사용하기에는 이보다 더 쉬울 수 없습니다.)

파일:
MQL5.zip  11 kb
 
Igor Makanu :

흠 최대한 설명을 드린듯 해서 제가 못된 선생님인데 빨리 배웁니다)))

자, 자세히 시도해 보겠습니다.

1. 컴파일러 다운로드 ///

그가 배우기 위해 이것이 필요하다고 생각하십니까(그런데 짧고 정확한 지침에 감사드립니다)?

그는 이제 자신의 접근 방식이 더 나은 이유를 말하기 시작할 것입니다. 그러나 이것은 좋지 않습니다.

 
Dmitry Fedoseev :

그가 배우기 위해 이것이 필요하다고 생각하십니까(그런데 짧고 정확한 지침에 감사드립니다)?

그는 이제 자신의 접근 방식이 더 나은 이유를 말하기 시작할 것입니다. 그러나 이것은 좋지 않습니다.

오, 나도 몰라, 어쩌면 당신이 옳을 수도 있습니다!

그러나 나는 가장 적은 저항의 길을 택했습니다 ... 나는 내 머리에 나쁜 생각을 유지하지 않았고, 나는 스스로 질문을보고 그것을 받아들이고 대답했습니다. 포럼에는 항상 그런 규칙이 있습니다. 당신은 나에게 말해요, 나는 말합니다 너)))

 
Vitalii Ananev :
왜 Peter는 OOP를 사용 하여 동일한 작업을 수행할까요? 나는 당신이 왜 OOP의 기능을 사용하지 않고 OOP의 원리를 이해하려고 시도하지 않는지 이해하지 못합니다. IT 전문가의 직업 자체는이 전문가가 끊임없이 독학에 종사하고 있음을 의미합니다. 기술이 멈춘 것이 아니라 새로운 프로그래밍 언어가 등장하면서 PC의 위력이 커지고 있다. 일반적으로 진행 상황은 멈추지 않습니다. 그리고 당신의 프로그래밍 스타일은 2000년대 수준에 머물러 있고 다른 프로그래머를 초대하여 그 초라한 시대의 수준으로 돌아갑니다. 나는 그것을 여러 번 반복했고 나는 다시 그것을 반복할 것이다. OPP를 사용하여 이 모든 작업을 수행해 보십시오.

그러나 OOP가 있든 없든 동일한 작업이 수행됩니다. 이미 한 일

 
Nikolai Semko :

Peter, 1년 반 전에 나는 당신에게 개인적인 메시지를 썼습니다.

현상이 없습니다. 이해를 거부한다는 증거가 있습니다.
그리고 분명한 것은 당신이 구식 프로그래밍 방법을 사용하고 근본적으로 게으름 때문에 새로운 지붕 펠트를 배우고 싶지 않다는 것입니다.

Nikolai, 당신은 도취되었고 이유가 명확하지 않습니다. 내가 상상할 수있는:

1. 당신은 정신과 의사의 자격을 가지고 있지만 히포크라테스 선서를 하지 않았습니다.

2. 당신은 완전히 비윤리적인 판단에 대해 Peter에게 사과할 준비가 되어 있습니다.

 
Алексей Тарабанов :

Nikolai, 당신은 도취되었고 이유가 명확하지 않습니다. 내가 상상할 수있는:

1. 당신은 정신과 의사의 자격을 가지고 있지만 히포크라테스 선서를 하지 않았습니다.

2. 당신은 완전히 비윤리적인 판단에 대해 Peter에게 사과할 준비가 되어 있습니다.

따라서 세계의 문명 국가에서는 인구의 매우 높은 수준의 심리학화가 있습니다(심리학 및 이해에 대한 관심의 의미에서). 일반적으로 한 사람이 다른 사람의 행동을 이해하려고 시도하고 그것에 대해 이야기 할 때 특별한 것은 없으며 일반적으로 행동의 모든 특징이 어린 시절에 뿌리를두고 있다는 것은 비밀이 아닙니다. 이것은 누구를 놀라게하거나 화나게하지 않을 것이며 모든 사람 그것에 대해 침착합니다.

 
Алексей Тарабанов :

그러나 OOP가 있든 없든 동일한 작업이 수행됩니다. 이미 한 일

일반적으로 접근 방식의 모든 장점과 원칙적으로 OOP의 완전한 실패를 미친 듯이 증명하려고 시도하지 않으면 문제가되지 않습니다.

 
Dmitry Fedoseev :

따라서 세계의 문명 국가에서는 인구의 매우 높은 수준의 심리학화가 있습니다(심리학 및 이해에 대한 관심의 의미에서). 일반적으로 한 사람이 다른 사람의 행동을 이해하려고 시도하고 그것에 대해 이야기 할 때 특별한 것은 없으며 일반적으로 행동의 모든 특징이 어린 시절에 뿌리를두고 있다는 것은 비밀이 아닙니다. 이것은 누구를 놀라게하거나 화나게하지 않을 것이며 모든 사람 그것에 대해 침착합니다.

또한 Nikolai Semko와 같은 좋은 사람이 미래에 태어난 곳과 그에게서 손상된 부분에 대해서도 논의하겠습니다. 우리는 문명 국가입니다.

 
Dmitry Fedoseev :

일반적으로 접근 방식의 모든 장점과 원칙적으로 OOP의 완전한 실패를 미친 듯이 증명하려고 시도하지 않으면 문제가되지 않습니다.

시도하면 차이가 있습니까? 테이블 - OOP는 어디에 있습니까?

다르게 해보자, 핫한 OOP 여러분. 2개의 테이블을 만듭니다. 첫 번째는 OOP가 없고 두 번째는 OOP가 있습니다. 가장 중요한 것은 - 혼동하지 마십시오.