서로 다른 프로세스 간 메모리 공유를 위해 만들은 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 버젼을 올립니다.

Posted by 견족자K rageworx