MQL5에는 항상 위업을 위한 장소가 있습니다! ;) - 페이지 7

 
o_O :
memcpy 를 사용할 수 있습니까?
 
Комбинатор :
memcpy를 사용할 수 있습니까?

아니요 )

SendParam을 호출하기 전에 이미 몇 가지 준비를 했다면 일종의 CInt 클래스에서 int를 래핑하는 것이 더 쉽다는 것을 이해합니다.

 
o_O :

포인터를 가져오는 기본 방법은 없습니다. 내 말은, 처음에 CInt 래퍼를 사용하지 않으면 포인터를 처리하기가 매우 어려울 것입니다.

글쎄, 플러스 측면에서, 당신은 또한 준비를합니다.


void f( int * value )
{
   //do something
}

{
   int x = 5 ;
   f(&x);
}

주소를 가져오는 것은 준비입니다. 대신

f (GetPtr (x)) 글쎄, 당신은 유형을 전송해야합니다

 
o_O :

클래스에 함수가 있다고 가정해 보겠습니다.

SendParam( int type, void * param)

매개변수의 유형(유형)과 매개변수 자체가 전달되는 대상 또는 오히려 이에 대한 포인터(void*)입니다.

매개변수는 모든 유형(클래스 또는 단순 유형)일 수 있습니다.

수업은 괜찮습니다. 그러나 간단한 유형의 목발로.

문제는 무엇입니까, 법적 무효:
템플릿<유형명 T>
무효 SendReceiveParam(T&param);
....
{
이중 dval = 10;
SendReceiveParam(dval);
정수 = 10;
SendReceiveParam(ival)
...
// 구조체 객체 참조
구조체 AAA { 무효 연산자 =(int a) {} };
AAA 구조체_발;
SendReceiveParam(구조체 발);
}

int 포인터를 통해 불법 쓰기?
 
그리고 작업의 조건을 입력하지 않았습니다. 분명히, 예제에서도 얻고자 하는 것에 대한 명확한 공식이 없습니다.
 
fxsaber :
그리고 작업의 조건을 입력하지 않았습니다. 분명히, 예제에서도 얻고자 하는 것에 대한 명확한 공식이 없습니다.

나는 이미 void* 매개변수에 int에 대한 포인터를 전달하려고 한다고 두 번 썼습니다.

(변형 memcpy , 이미 제안된 중급 클래스, 반복할 필요 없음)

 
o_O :

나는 이미 void* 매개변수에 int에 대한 포인터를 전달하려고 한다고 두 번 썼습니다.

(Memcpy 옵션, 이미 제안된 중급 클래스, 반복할 필요 없음)

젠장, 적어도 C 구문에서는 MQL에서도 작동해야 하는 코드의 예를 가질 수 있습니까?
 
alexsis78 :
문제는 무엇입니까, 법적 무효:
템플릿<유형명 T>
무효 SendReceiveParam(T&param);

아름답지만 적합하지 않습니다.

NULL을 전달할 수 없습니다.

 
fxsaber :
젠장, 적어도 C 구문에서는 MQL에서도 작동해야 하는 코드의 예를 가질 수 있습니까?
void SendParam( void * );

int a= 10 ;
SendParam(&a);
SendParam( NULL );
 
o_O :
void SendParam( void * );

int a= 10 ;
SendParam(&a);
SendParam( NULL );
예를 들어 주셔서 감사합니다! 그러나 나는 사용 목적-편의를 잡지 못했습니다. 예를 들어 int에 포인터를 사용하는 방법을 이해하려면 SendParam의 다른 부분을 추가하십시오.
o_o :

좋은데 어울리지 않는다

아름답다는 것은 과연 무엇일까요? 템플릿의 전면 적용과 같습니다 . 아니면 내가 뭔가를 놓치고 있습니까?