DLL ב- ++C

panther34

New member
DLL ב- ++C

שלום, אני רוצה לבנות DLL שהמידע בו יהיה משותף לכל אפליקציוה שמתמשות בו. כלומר של-DLL הזה יהיה מופע אחד ולא מספר מופעים (מופע לכל אפליקציה) וכך יהיה משותף לכולם.. תודה רבה! עידן.
 

dove2

New member
ככה DLL מתנהג בכל מקרה

DLL נטען פעם אחת והקוד והקבועים שבו (כל מה שמווגדר const static) נמצא פעם אחת בזיכרון עבור כל מערכת ההפעלה בלי קשר לכמה תהליכים משתמשים בו. אם אתה רוצה שגם מידע אחר לא-קבוע יהיה משותף אז זה כבר לא קשור למיקום הקוד ב DLL או EXE . אתה צריך לשמור את המידע הדרוש בזכרון משותף. הדרך הפשוטה ביותר לדעתי זה memory-mapped file (קצת גוגל יתן לך דוגמאות) אבל זה תלוי מה הצורך הספציפי. אם מדובר במידע מועט במיוחד גם שימוש ב ATOM-ים או משאבים דומים שהם named ברמת המערכת יכולים להיות מהירים ויעילים.
 

panther34

New member
תודה... מצאתי עוד דרך...

השתמשתי ב- shared variables:
#pragma data_seg("SHARED") int Status = 0; #pragma data_seg() . #pragma comment(linker, "/section:SHARED,RWS")​
אני אבדוק את הדרכים שאמרת לי אולי יש בהם יותר אפשרויות. תודה רבה!
 
למעלה