#pragma data_seg(.세크먼트명)

  변수=값; .....

#pragma data_seg()

 

DLL은

타 프로세스간 DLL에서 코드 부분으 공유되지만

데이타부분은 공유되지 않고 각 프로세스에 생성된다.

이럴때 DLL에서 타 프로세스에게 데이타를 전달해주어야 하는 경우

이 공유 섹션을 사용하면 편리하다.

 

공유 섹션에의 변수에는 항상 값이 할당이 되어야만 한다.

 

세그먼트명은 임으로 정할수 있다.

 

예)

DLL의 공유메모리의 값을 DLL에서 사용하는 프로세스에 전달

#pragma data_seg(.dseg)

     int g_nNumber = 0xFFFFFFFF;

#pragma data_seg()

 

extern "C" _declspec( dllexport ) int* GetNumberPointer( )
{
return &g_nNumber;
}

DLL을 사용하는 프로세스에서 GetNumberPointer를 호출함로서 공유메모리의 값을 얻을수 있다.

 

+ Recent posts