본문 바로가기

내가 작업한 것들

프로세스간 메모리 공유를 위한 DLL : SHARERES.DLL v0.3.11.16


서로 다른 프로세스 간 메모리 공유를 위해 만들은 SHARERES.DLL 입니다.
공용메모리가 처음 생성되는 instance 에서 생성되고, reference count 가 증가 되어도 같은 동일한 메모리에 데이터를 참조 합니다.
내부적으로 메모리 포인터를 직접 사용자에게 인터페이스로 넘겨 주도록 만들어 지진 않았습니다.
또한 다른 프로세스가 write / read 시엔 내부 메모리가 Lock 이 되도록 만들어 졌습니다.

보통 500MB ~ 1GB 내의 메모리를 만들어 쓸 수 있으며, 그 이상의 크기는 퍼퍼먼스가 날 수 있을지 잘 모르겠네요.

표준 윈도우 DLL 로 만들어 졌으며, 범용성을 고려해서 stdcall 로 만들까 하다가 cdecl 로 만들었습니다.
자세한 정보는 첨부된 파일을 보시면 알 수 있으며, 테스트를 위한 tester 란 win32 어플을 포함 하였습니다.
tester 어플은 delphi.win32 로 만들어 졌으며, cdecl; external 'SHARERES.DLL' name 'xxxx' 형태로 바로 호출해 쓰도록 만들어 졌습니다.

상용으로 만들어 진 것이 아니므로 만든 DLL 에 대해 책음을 지지는 않습니다.
하지만 버그사항에 대해서는 언제든지 환영 입니다.

0.3.11 버젼에서 버그가 있었습니다.
getData() 에서 지정한 메모리가 내부에서 쓰는 메모리 보다 크면 NOSPACE 오류를 내보내더군요.
수정한 0.3.12.20 버젼을 올립니다.