DLL과 EXE간의 데이타 공유하기

by digipine posted Oct 29, 2017
?

Shortcut

PrevPrev Article

NextNext Article

ESCClose

Larger Font Smaller Font Up Down Go comment Print

DLL과 EXE간의 데이타를 공유하기 위해서는 두가지 방법이 존재합니다.

 

1. data_seg pragma를 사용하여 공유할 섹션만들기

(1) 우선 공유할 데이터(변수)를 Global변수로 선언하고 #Pragma data_seq을 다음과 같이 추가한다.

 

#pragam data_seg("SHAREDATA")
int g_nCount = 0;
char g_szText[12] = "hello world";
#pragma data_seg()

 

(2) 그런 다음 DLL프로젝트 내부에서 *.def파일에 아래에 내용을 추가한다 .

SECTIONS
      SHAREDATA READ WRITE SHARED


2. 소스내에 정의하기

입력한 소스밑에 아래와 같이 정의한다.

 

// R : Read    W : Write    S : Shared
#pragma comment(linker, "/SECTION:.SHAREDATA, RWS")

// Global로 선언된 변수(공유데이터)를 리턴해 줄 함수 만들기
__declspec(dllexport) int* GetCountPointer()
{
    return &g_nCount;
}

__declspec(dllexport) char* GetTextPointer()
{
    return g_szText;

TAG •