C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[45309] Re:Dll 로 배열을 넘겨주고 배열을 넘겨 받는 법..
장성호 [nasilso] 984 읽음    2006-06-15 13:36
먼저 dll내의 함수는 아닌 함수나 똑같습니다.

Call By Refrence 로 넘기면 되죠

다시 말해 데이타의 주소 (포인터)를 넘기는 겁니다

//넘겨준배열에 그래로 업데이트 되게 하려면
void   Foo1( BYTE *msg)
{
       msg[0]=msg[1]*10;
       msg[2]=msg[1]*10;
       msg[3]=msg[1]*msg[2];
}

//넘겨준배열과 결과값을 다르게 가지고자 한다면
void   Foo2( BYTE *msg,BYTE *rslt)
{
       rslt[0]=msg[1]*10;
       rslt[2]=msg[1]*10;
       rslt[3]=msg[1]*msg[2];
}

void  DllFooCall()
{
     BYTE msg[10];
     msg[0] =0x01
     msg[1] =0x02
     msg[3] =0x03
   
     Foo1(msg);           //  방법   1
     Foo1(&msg[0])    //   방법  1-1
   
     BYTE result[10];  //결과를 따로 받고자 한다면

     Foo2(msg,result);  // 방법 2
     Foo2(&msg[0],&result[0]);  //방법  2-1

}

방법 1과 1-1은 똑같습니다. , 방법 2와 2-1도 똑같은것이구요

질문의 의도에 맞는 답변인지 모르겠네요


//..................


형사 님이 쓰신 글 :
: 우선 아래 도움 주신 분 모두 감사 드립니다...
:
:  그러면서 또 질문 ^^
:
:  아래 질/답 에서 찾아보니 몇가지를 찾기는 했는데 비슷한 질문 일수도 있겠구요..
:
:  DLL 로 기능을 좀 분리해서 사용하고 싶은데
:
:  DLL 로 BYTE 배열을 넘겨주고

:  그곳에서 처리를 한후 결과로 나온 배열을 다시 리턴해주고 싶은데 배열을 넘기고 받는게 잘 안되네요ㅜ.ㅜ
:
: BYTE msg[10];
:
:  msg[0] =0x01
:  msg[1] =0x02
:  msg[3] =0x03
:
: 이렇게 넘어가면 DLL 에서 처리한 값이
:
:  msg[0] =0x06
:  msg[1] =0x07
:  msg[3] =0x08
:
: 이 되어 다시 리턴되야 되는데 배열 이란 넘이라 아구..
:
: 생각해본것은 반복문으로 배열길이만큼 반복해서 넘겨주고 .. DLL 에서 받는값은 배열에 반복으로 넣고
:
: 근데 이러면 코딩이 더 길어 지는 건 아닌지... 조언 부탁 드립니다. .

+ -

관련 글 리스트
45304 Dll 로 배열을 넘겨주고 배열을 넘겨 받는 법.. 형사 856 2006/06/15
45309     Re:Dll 로 배열을 넘겨주고 배열을 넘겨 받는 법.. 장성호 984 2006/06/15
45308     Re:Dll 로 배열을 넘겨주고 배열을 넘겨 받는 법.. BloodWolf 1185 2006/06/15
45307     Re:Dll 로 배열을 넘겨주고 배열을 넘겨 받는 법.. 외랑 977 2006/06/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.