dll 프로세스 통신 실현
3.6.2 DLL
, Win32 DLL, DLL , , 。 。
Win32 DLL , #pragma
data_seg , 。 , , 。
:
(1) DEF SECTIONS , :
SECTIONS
READ WRITE SHARED
(2)#pragma comment(linker,"/SECTION: ,RWS")
:
#pragma data_seg("MyShared")
UINT m_glnData=0;
#pragma data_seg()
#pragma comment(linker,"/SECTION:MyShared,RWS")
。 , .bss 。 , , .bss 。
MyShared, , MYDATA、.MYSC , PE , 。
, DLL 。 DLL , 。
3.6.3 DLL
, DLL 。 DLL DllObj.h。 :
// DllObj.h:
//
#ifndef _DLLOBJ_H_INCLUDED
#define _DLLOBJ_H_INCLUDED
#include
#ifdef _cplusplus
#define _DLLCOM_ extern "C" _declspec (dllexport)
#else
#define _DLLCOM_ _declspec (dllexport)
#endif
_DLLCOM_LPSTR GetValueString();
_DLLCOM_void SetValueString(LPCSTR str);
#endif
SetValueString() GetValueString() 。_DLLCOM_
DLL 。 ,SetValueString() GetValueString() DLL 。 , m_strString DLL 。
DLL 。 MFCAppWizard(dll) dllcom
( ), dllcom.cpp , VC++ , dllcom.dll dllcom.lib 。 DLL :
#pragma data_seg("MyShared")
char m_strString[256]=TEXT("");
volatile bool bInCriticalSection=FALSE;
#pragma data_seg()
#pragma comment(linker,"/SECTION:MyShared,RWS")
CCriticalSection cs;
//
_DLLCOM_ LPSTR GetValueString()
{
while(bInCriticalSection) //
Sleep(1);
returnm_strString;
}
//
_DLLCOM_ void SetValueString(LPCSTR str)
{
while(bInCriticalSection) //
Sleep(1);
cs.Lock();
bInCriticalSection = TRUE;
strcpy(m_strString,str);
bInCriticalSection = FALSE;
cs.Unlock();
}
bInCriticalSection 。
DLL , 。 ,dlluser1 dlluser2, DllObj.h dllcom.lib ,
#include "DllObj.h"
#pragma comment(lib,"dllcom.lib")
, MFCVC++ , SetValueString() GetValue-String() 。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.