shared data in dll
-
hola leute
weiß jemand wie ich eine variable fuer jede instanz einer dll erstellen kann ?
hab es nach dem beispiel von http://bdn.borland.com/article/0,1410,20008,00.html
probiert. aber da bekomme ich immer den fehler das es die #pragma optionen -zR und -zT nicht gibt. kennt sich da jemand aus ? oder gibt es sonst noch einen trick wie man so ne art globale variable erstellen kann ?Meep Meep
-
mit shared memmry
HINSTANCE hinstglob; static LPVOID lpvMem=NULL; int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved) { hinstglob=hinst; HANDLE hMapObject=NULL; BOOL fInit,fIgnore; switch(reason) { case DLL_PROCESS_ATTACH: hMapObject = CreateFileMapping((HANDLE) 0xFFFFFFFF,NULL,PAGE_READWRITE,0,4096,"dllmemfilemap"); if(hMapObject==NULL) return FALSE; fInit=(GetLastError()!=ERROR_ALREADY_EXISTS); lpvMem=MapViewOfFile(hMapObject,FILE_MAP_WRITE,0,0,0); if(lpvMem==NULL) return FALSE; if(fInit) memset(lpvMem,0,4096); break; case DLL_THREAD_ATTACH: break; case DLL_THREAD_DETACH: break; case DLL_PROCESS_DETACH: fIgnore=UnmapViewOfFile(lpvMem); fIgnore=CloseHandle(hMapObject); break; } return 1; } //---------------------------------------------------------------------------LPVOID lpvMem=NULL;
ist dann der Bereich (hier 4096 Bytes) den du gemeinsam nutzen kannst