코딩하는 방법? - 페이지 205

 

간단한 DLL 호출에 도움이 되셨나요?

그래서 내가 하고 싶은 일은 dll에서 MT4 Acc#을 얻는 것뿐입니다.

Dll_callDll_call.dll 의 " GetAccountNumber() " 이중에 대해 Dll_call_include 를 요청합니다.

간단하죠? ea는 DLL에 잘못된 Acc#이 있어도 잘 로드됩니다. Mt4에서 dll 사용을 요청합니다.

3개의 파일은 오른쪽 3개의 폴더에 있고 dll은 .dll 파일입니다(코드를 보기 위해 .txt로 첨부됨).

누군가 코드에서 오류를 볼 수 있습니까?

감사해요

파일:
 

컴파일된 dll 의 .def 파일에 GetAccountNumber를 포함했습니까? 작동하려면 이렇게 해야 합니다.

또한 전문가에 대해 Dll 가져오기 허용이 선택되어 있는지 확인하십시오.

도움이 되었기를 바랍니다.

-늑대

 

나는 C++에 약간 익숙하지 않으므로 def 파일을 연구하는 것이 좋지 않다고 생각합니다. DLL이 있는 라이브러리 폴더에 def 파일을 추가하면 이 문제를 해결할 수 있지만 그렇지는 않습니다.

또한 DLL을 system32 폴더에 추가하는 것을 읽었지만 여전히 아닙니다.

나는 이 프로젝트 를 사람들에게 이메일로 보낼 계획이므로 4개의 다른 파일을 다른 폴더에 모두 배치하는 방법을 말할 필요가 없습니다. 이것이 유일한 방법입니까?

3 파일의 코드가 맞습니까?

정말 감사합니다

 

이것은 def 파일입니다. 괜찮아?

DLL과 함께 라이브러리에 들어갈 필요가 있습니까?

 
jimmynz:
이것은 def 파일입니다. 괜찮아? DLL과 함께 라이브러리에 들어갈 필요가 있습니까?

.def 파일은 일부 또는 컴파일된 C++ 솔루션입니다. 그런 다음 컴파일된 C++ dll을 Windows의 system32 폴더에 복사합니다. 나는 Windows XP와 함께 32비트 시스템을 사용합니다.

저도 C++ 전문가는 아니지만 이것이 제가 작동하게 만든 방법입니다.

 

도움에 감사하지만 여전히 없습니다.

이상한 점은 acc #를 확인 하기 위해 일반적인 코드로 EA를 만들려고 시도했다는 것입니다.

정수 = 907671;

int b = 계정 번호();

if (b != a) {

Alert("계좌번호 확인 중! (" + DoubleToStr(li_16, 0) + ") 잘못된 계정");

리턴(0)}

EA는 숫자에 관계없이 로드되지만 인디로 만들면 잘 작동합니까?

으윽

 

...

EA는 항상 로드됩니다(컴파일을 방해하는 코딩 오류가 없는 경우).

"일반적인 작업"을 중지하고 권한이 없는 작업을 수행하지 못하도록 할 위치를 결정하기만 하면 됩니다. 일반적으로 다음과 같이 start() 시작 부분에 검사 루틴을 넣습니다.

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

//| Dll_call.mq4 |

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

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

//| expert start function |

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

int start()

{

static bool alerted = false;

int a = 907671;

int b = AccountNumber();

if (b != a)

{

if (!alerted)

{

Comment("Checking Account No! (" + DoubleToStr(b, 0) + ") wrong Acc");

alerted = true;

}

return (0);

}

//

//

// the part that is not executed when account number is wrong

//

//

alerted = false;

Comment("continuing the rest of the job");

return(0);

}

그러나 이러한 종류의 검사는 몇 분 만에 디컴파일러가 해킹할 수 있습니다.

추신: 시각적 백 테스트에서 확인할 수 있도록 Alert()를 Comment()로 변경했습니다.

jimmynz:
도움에 감사하지만 여전히 없습니다.

이상한 점은 acc #를 확인하기 위해 일반적인 코드로 EA를 만들려고 시도했다는 것입니다.

정수 = 907671;

int b = 계정 번호();

if (b != a) {

Alert("계좌번호 확인 중! (" + DoubleToStr(li_16, 0) + ") 잘못된 계정");

리턴(0)}

EA는 숫자에 관계없이 로드되지만 인디로 만들면 잘 작동합니까?

으윽
 
 
luxinterior:
그래서 당신은 여기에서 찾을 수 있는 두 개의 무료 EA를 가져 와서 함께 '병합'하여 2K에 판매하는 것이 좋은 계획입니까? 신경질적인 친구가 생겼습니다! 당신이 정말 운이 좋다면 실제로 시간, 노력, 지식을 무료로 포기한 두 사람 중 한 명이 당신을 위해 그것을 제안할 것입니다.

아, 하지만 기다려! 코드가 ' 엉망인' 경우 EA는 대부분 디컴파일된 상용 EA일 가능성이 큽니다. 그게 다야? 바보!!!

럭스

오, 좋은 연설. 다음과 같이 말씀드리겠습니다.

당신이 보고 있는 EA가 무엇이든, 같은 아이디어를 가진 누군가가 이미 EA를 만들었을 가능성이 큽니다. 무료 EA? 장난해? 이 포럼에서 어떤 EA 권한이 그러한 잠재력을 가지고 있었습니까?

또한 스스로를 개발자라고 부르는 사람들이 다른 사람들의 것을 베끼고 $3000 클럽 구독료에 판매하고 있습니다. 그리고 최악의 경우 EA를 사용하면 계정이 완전히 날아갈 것입니다. .... 영

또한 여기에서 EA를 가져간 적이 없습니다. 이 포럼에서 병합할 가치가 있는 EA는 무엇입니까? 또한 코드가 엉망이라면 프로그래머에게 EA 코딩을 요청하는 것일 수 있습니다. 그런 다음 더 많은 기능이 필요하므로 다른 프로그래머에게 요청합니다...도와주세요!

다른 코딩 스타일은 시간이 지남에 따라 코드를 엉망으로 만들 수 있습니다.

또한 상용 EA를 디컴파일하지 않았습니다. 당신이 나라고 말한 이유는 당신이 그것을 스스로하고 있다는 사실입니다. 디컴파일러가 어떤 유형의 혼란을 일으킬지 모르겠습니다. 그러나 확실히, 디컴파일러가 엉망이 될 수 있다고 확신한다면 아마도 그것을 사용하고 있을 것입니다. 그렇지 않으면 당신은 결코 알지 못할 것입니다.

한 가지 조언은 다른 사람들을 바보라고 부르거나 경찰/영웅처럼 행동하기 전에 먼저 자신을 판단하십시오. 그렇지 않으면 입에서 나오는 그 말을 다시 삼키게 할 수 있습니다.

고맙습니다.

 

iMAOnArray() 관련 도움말

안녕,

저는 MT4를 처음 접합니다... 전문가에게 다음 코드를 포함시키려고 필사적으로 노력했지만 그렇게 할 수 없었습니다.

" iMAOnArray(ind_buffer1,Bars,SignalEMA,0,MODE_EMA,i); "

예, 위의 내용을 EA에서 직접 사용할 수 없다는 것을 알고 있지만 위의 MA를 다시 코딩하여 동일한 결과를 얻을 수 있습니까? 그렇다면 도움을 주시면 감사하겠습니다.

문안 인사.