일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- flutter
- aduino
- parameter
- Read
- sensor
- public
- Pointer
- Overloading
- atmega328
- mfc
- SERIAL
- Binary
- compare
- Barcode
- Contour
- Class
- Encapusulation
- UNO
- APP
- Android
- wpf
- digitalRead
- memory
- java
- stream
- file access
- preprocessing
- length
- Unity
- inheritance
- Today
- Total
폴크(FOLC)
데이터 공유 방법 ( 동일 PC ) 본문
# 일반적으로 프로세스간의 데이터를 공유하는 방법
-> IPC : Inter-Process Communication
- 윈도우 메시지 전달 방법
- TCP/IP 통신 이용 방법
- 공유 메모리 이용 방법
- 공유 파일 이용 방법
- 등등
# 2개의 서로 다른 프로세스에서 특정한 데이터를 공유 하고자 하는 경우에 이용한다.
-> 공유 메모리 이용 방법
-> WinAPI ( CreateFileMapping[생성], OpenFileMapping[연결], UnmapViewOfFile[해제] ) 함수를 이용
# 소스 코드
#define SHARED_MEM_NAME _T("shared_mem_test")
struct SHAREDMEMDATA
{
int AAA;
int BBB;
};
- 생성
m_hHandle = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, sizeof(SHAREDMEMDATA), SHARED_MEM_NAME);
if (m_hHandle)
{
m_pSharedMemData = (SHAREDMEMDATA*)MapViewOfFile(m_hHandle, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(SHAREDMEMDATA));
}
- 연결
m_hHandle = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, SHARED_MEM_NAME);
if (m_hHandle)
{
m_pSharedMemData = (SHAREDMEMDATA*)MapViewOfFile(m_hHandle, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(SHAREDMEMDATA));
}
- 해제
if (UnmapViewOfFile(m_pSharedMemData) == TRUE)
{
CloseHandle(m_hHandle);
}
- 읽고/쓰기
m_pSharedMemData->AAA = 0;
int ccc = m_pSharedMemData->BBB = 0;
'C, C++, MFC > C, C++, MFC 테크닉' 카테고리의 다른 글
데이터 공유 방법 ( 동일 PC ) (0) | 2023.06.05 |
---|---|
데이터 공유 방법 ( 동일 PC ) (0) | 2023.04.08 |
MFC 테크닉 - Chart 그리기 ( ChartDirector ) (0) | 2022.02.15 |
MFC 테크닉 - 스크린 캡쳐 ( CImage ) (0) | 2021.12.24 |
MFC 테크닉 - UnZip 파일 복원 ( info-zip ) (0) | 2021.12.22 |