Q&A

  • 프로그램간 데이터 주고받기
안녕하신가요? 궁금한게있어서...

델파이로 작성한 프로그램과 Visual C++로 작성한 프로그램사이에서 데이터를 주고받고 하고싶은데요.

어떤 방법이 있는지 그리고 가능하시면 예제도 좀 알려주시면...

다들 그러시겠지만 좀 급하거든요. 미리미리 인사드립니다. 꾸우벅~~~

2  COMMENTS
  • Profile
    김영대 1999.10.14 20:31
    정은수 wrote:

    > 안녕하신가요? 궁금한게있어서...

    > 델파이로 작성한 프로그램과 Visual C++로 작성한 프로그램사이에서 데이터를 주고받고 하고싶은데요.

    > 어떤 방법이 있는지 그리고 가능하시면 예제도 좀 알려주시면...

    > 다들 그러시겠지만 좀 급하거든요. 미리미리 인사드립니다. 꾸우벅~~~



    두 프로세스가 원격지에 있는지 로컬에 있는지와

    전달되는 자료의 양이 얼마인가요?



    로컬의 자료전송은 파일매핑 이나 WM_COPYDATA 메시지를 통하면

    많은 양의 자료를 전송할 수 있습니다

    원격지의 자료전송은 socket 프로그래맹을 하셔야 되는데

    session 이 있는 경우라면 TCP를 없는 경우는 UDP 프로토콜을 사용하시면 됩니다



    제 홈페이지(http://myhome.shinbiro.com/~cozykyd/index.htm) 에 오셔서

    "Delphi Tip" 에서

    "WM_COPYDATA" 또는 "공유" 키워드로 검색해 보시면

    로컬의 자료전송에 대한 소스가 있습니다





  • Profile
    윤지연 1999.10.14 16:45
    공유 메모리를 쓰시면 되지 않을까 싶은데..가상 메모리라고도 하더군요.



    코딩을 해 놓고도 자세한 예제가 방금 떠오르지 않는데...



    저같은 경우 주고받아야 할 Data들을 Record(Structure)로 선언하고 FileMapping을 이용했습니다.



    방금...Delphi를 열어서 코딩했던 것을 찾았는데...



    뭐, 이렇네요.



    function DolphinInitMem:Pointer;

    var

    Handle : THandle;

    Size : Integer;

    begin

    try

    size := 21;

    Handle := CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0, size, 'DOLPHINS');

    if Handle = 0 then abort;

    DolphinView := MapViewOfFile(Handle, File_MAP_ALL_ACCESS, 0, 0, size);



    if DolphinView = nil then abort;



    result := DolphinView;

    except

    Messagedlg('공유 안됨', mtError, [mbOk],0);

    result := nil;

    end;

    end;



    위의 코드는 생성하는 경우....처음 Application이 생성될 때 위의 코드로 FileMapping을 생성해주고



    공유 메모리 데이터가 필요하면 open했다가 종료할 때 close를 해 주면 되겠죠.



    정은수 wrote:

    > 안녕하신가요? 궁금한게있어서...

    > 델파이로 작성한 프로그램과 Visual C++로 작성한 프로그램사이에서 데이터를 주고받고 하고싶은데요.

    > 어떤 방법이 있는지 그리고 가능하시면 예제도 좀 알려주시면...

    > 다들 그러시겠지만 좀 급하거든요. 미리미리 인사드립니다. 꾸우벅~~~