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
[57369] Re:한대의 PC에서 두개의 appcation 데이터 교환방법이 궁금합니다.
망치 [mangchy] 1425 읽음    2009-06-23 08:13
메모리 공유가 어렵다면 걍 tcp/ip 로컬 어드레스로 서로 통신하세요.
이것도 힘드시려나...
아니면 SendMessage로 wm_copy로 버퍼를 통째로 보내도 되겠네요.

장현건 님이 쓰신 글 :
: 안녕하십니까
:
: 입문 일년 반째 되는 "아직도"초보 빌더 유저입니다.
:
: 1번 프로그램에서 이미지를 찾고 2번 프로그램에서 그 이미지를 처리한 후 처리한 이미지를 1번 프로그램에 디스플레
: 이 해주는 프로그램을 작성하고 있는데요.
:
: 처음엔 1번 프로그램에서 찾은 이미지를 저장 후-> 저장된 이미지 파일을 2번 프로그램에서 수정후 저장
: ->다시 1번 프로그램에서 수정된 이미지파일을 Load하는 방법을 생각 했습니다.
:
: 하지만 속도도 좀 느리고, 나중에 문제가 발생할거 같은 생각이 들어서, 다른 방법으로
:
: 볼랜드 포럼에 나온 DLL을 이용한 메모리 공유를 시도하다가, 너무 어려워서 그만..;;
:
: 마지막 방법으로 API 메모리 공유가 생각나서  "API정복"에서 보고
:
: 전역으로 함수를 선언하고(호출방법이 콜백이라는 방식을 사용하더군요), 다음과 같은 코드를  작성 하였습니다.
:
: LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam)
: {
:   HDC hdc;
:   PAINTSTRUCT ps;
:   HWND hTarget;
:   char Mes[] = "메모리 맵 파일을 사용하여 두 프로세스가 메모리를 공유하는 예제";
:
:   switch(iMessage){
:   case WM_CREATE:
:     hEdit = Form_app1->Memo1->Handle;
:             //CreateWindow("edit",NULL,WS_CHILD | WS_VISIBLE | WS_BORDER |
:             //WS_VSCROLL | ES_MULTILINE,10,10,500,200,hWnd,(HMENU)ID_EDIT,g_hInst,NULL);
:     SendMessage(hEdit,EM_LIMITTEXT,MAXSHAREMEMORY,0);
:     hFMap=CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE,
:       0,MAXSHAREMEMORY, "MEMSHAREMAPPING");
:     PtrInFile=(char*)MapViewOfFile(hFMap, FILE_MAP_ALL_ACCESS, 0, 0, MAXSHAREMEMORY);
:     return 0;
:   case WM_COMMAND:
:     switch(LOWORD(wParam)){
:     case ID_EDIT:
:       switch(LOWORD(wParam)){
:       case EN_CHANGE:
:       GetWindowText(hEdit,PtrInFile,MAXSHAREMEMORY);
:       hTarget=FindWindow(NULL, "MemShare1");
:       if(hTarget)
:         SendMessage(hTarget,WM_USER+1,0,0);
:       break;
:       }
:     }
:     return 0;
:   case WM_USER+1:
:       SetWindowText(hEdit,PtrInFile);
:       return 0;
:   case WM_PAINT:
:       hdc=BeginPaint(hWnd, &ps);
:       TextOut(hdc,10,220,Mes,strlen(Mes));
:       EndPaint(hWnd, &ps);
:       return 0;
:   case WM_DESTROY:
:       UnmapViewOfFile(PtrInFile);
:       CloseHandle(hFMap);
:       PostQuitMessage(0);
:       return 0;
:     }
:     return(DefWindowProc(hWnd,iMessage,wParam,lParam));
: }
: 함수에 접근이 안되어서
: WM_CREATE가 함수보다 생성이 더 빨리되서 그런가 하고 WM_CHAR로 변경하고 글씨를 써 봤으나,
: 하지만 디버깅 결과 함수를 읽지 조차 않았습니다. ㅠ
:
: 혹시 위에 wndproc() 함수를 호출하는 방법이나,
:
: 한개의 PC에서 두개의 어플리케이션 끼리 함수를 공유해서 사용하는 법 아시는
:
: 고수분 있으시면 답변 부탁드립니다.
:
: -글 너무 길게 써서 죄송합니다. -

+ -

관련 글 리스트
57367 한대의 PC에서 두개의 appcation 데이터 교환방법이 궁금합니다. 장현건 1100 2009/06/22
57381     Re:한대의 PC에서 두개의 appcation 데이터 교환방법이 궁금합니다. 아제나 1626 2009/06/23
57369     Re:한대의 PC에서 두개의 appcation 데이터 교환방법이 궁금합니다. 망치 1425 2009/06/23
57370         Re:Re:한대의 PC에서 두개의 appcation 데이터 교환방법이 궁금합니다. 장현건 1131 2009/06/23
57388             Re:Re:Re:한대의 PC에서 두개의 appcation 데이터 교환방법이 궁금합니다. 김상구.패패루 1256 2009/06/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.