CoCreateInstance

selalerer

New member
CoCreateInstance

אני כרגע משתמש במחלקה של מייקרוסופט שדורשת שאני אקצה אותה בעזרת הפונקציה הזאת, מה המשמשעות שלה, ולמה אני לא יכול להשתמש בהכרזה רגילה? האם אני יכול לעשות לעשות לאובייקט אח"כ delete או שאני גם צריך פונקציה מיוחדת בכדי לשחרר אותו? תודה, סלע.
 

gilad_no

New member
COM

רכיבי COM יוצרים באמצעות COCREATEINSTANCE. משחררים אותם באמצעות RELEASE. אם תדאג להשתמש במצביעים חכמים לאורך כל הדרך (CCOMPTR), לא תצטרך לדאוג לשחרור שלהם והם לא ייגרמו לך לזליגות זיכרון.
ITest* pTest1; CoCreateInstance(CLSID_Test,NULL,CLSCTX_ALL,IID_ITest,(void**)&pTest1); pTest1->Function(1); pTest1->Release(); CComPtr<ITest> pTest2; pTest2.CoCreateInstance(CLSID_Test); pTest2->Function(1);​
 

selalerer

New member
הוא נותן לי טעות שאין הגדרה CComPtr

על אף שההשלמה האוטומאטית כן עובדת. נכנסתי לoptions-->directories והעליתי את הATL/include לראש הרשימה ועדיין הוא כותב missing storage-class or type specifiers... מדוע? הכיצד? וכי למה? תודה רבה, סלע.
 

selalerer

New member
עכשיו הוא נותן לי אותה טעות על

CAutoPtr (כאשר הקובץ atlbase.h כבר מוכלל) ואין בתיעוד בMSDN באיזה קובץ הוא מוכרז. תודה, סלע.
 
למעלה