שאלת DLLים

אמיר ט

New member
שאלת DLLים

יש לי DLL מסוים שכתבתי, שני תוכניות שונות משתמשות בו. ה DLL הזה מכיל רשימה כלשהי, ואני רוצה שהיא תהיה גלובלית, כלומר שלשני התוכניות שלי (אלה שני פרוססים נפרדים) יקבלו את אותו רשימה מהDLL. מה שבעצם אני רוצה לעשות כאן זה מן Singleton, הבעיה היא שDLL הרי משתמש בזיכרון של הפרוסס הקורא שלו ולכן זה בעייתי. למישהו יש רעיון איך למממש כזה דבר ?
 

DNile

New member
חחח, אתה הבן אדם השלישי

שראיתי אותו שואל שאלה בסגנון בשבוע האחרון.. אין שום בעיה - יש לDLLים אופציה להגדיר shared data segment(ממליץ לך לקרוא על זה בספר של ריכטר, אבל אפשר גם סתם בmsdn).
 

אמיר ט

New member
אוקי... קראתי על זה קצת ב MSDN

ועכשיו שאלת המשך - המשתנה שאני רוצה שיהיה shared הוא member של הקלאס שלי, לצורך העניין ממבר סטטי (אבל זה לא מאד עקרוני - הוא לא חייב להיות) זה יכול להשפיע, כי יש שם כל מני אזהרות לגבי זה, ומה שאני מנסה לעשות כאן זה להגדיר map של STL ככה - ומן הסתם ההקצאות יהיו של פרוסס אחד - האם גם השני יוכל לגשת לזה ?
 

gilad_no

New member
לא

אתה יכול לשתף רק דברים שלא מקצים זיכרון בצורה דינמית. לשם העניין, תוכל להקצות מין HEAP משותף ואז לממש לבד את כל ההקצאות בעצמך על בסיס הזיכרון המשותף.
 

אמיר ט

New member
הממ....

זה מה שאני מקבל כשניסיתי לעשות מה שרשום ב MSDN :
LINK : warning LNK4039: section ".MYSEC" specified with /SECTION option does not exist​
 
למעלה