ABA


"מומחי ה-MFC, אולי מישהו יוכל לכוון אותי לבעיה"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #10132 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10132
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   21:48   03.11.10   
אל הפורום  
  מומחי ה-MFC, אולי מישהו יוכל לכוון אותי לבעיה  
 
מדובר בפרוייקט ב-VS2010 שבמקור לא תמך MFC (אלא Standard Windows Libraries).

אני בזמן ריצה מייבא דינמית מחלקה מ-DLL של CAxisMediaControl.
במחלקה CAxisMediaControl היורשת ממחלקת חלון (CWnd) הוספתי את השדה בהצהרה (DECLARE_DYNCREATE(CAxisMediaControl.

במחלקה המשתמשת באינטפרייס של ה-DLL (מהצורה
;(InvokeHelper(0x65, DISPATCH_METHOD, VT_EMPTY, NULL, NULL).

הוספתי את השדה ;CAxisMediaControl m_AMC בקובץ ההאדר
וב-CPP את (IMPLEMENT_DYNCREATE(CAxisMediaControl (המחלקה יורשת מ-CWnd).

הכל מתקמפל טוב ויפה, אבל בזמן ריצה קופץ assertion:
winocc.cpp שורה 381
(ASSERT(m_pCtrlSite != NULL); // not an OLE control (not yet, at least))


מישהו מכיר את התופעה ויוכל לתת לי כיוון?
שוב, לא התחלתי עם פרוייקט MFC מ-0, אלא שיניתי ההגדרות באחד קיים (למרות שלא חושב שזו הבעיה בהגדרות).
בסה"כ אין לי חלון ראשי או משהו בסגנון (ואולי זו הבעיה, רק שאני לא בטוח איך אני אמור לפתור אותה).

תודה!

נ.ב., המימוש המקביל ב-#C עובד אחלה.


בברכה,
עידן


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  אתחלת את המנוע com עם cocreateinstance? Net_Boy  04.11.10 07:54 1
     אה כן, זו עוד בעיה, שיש לי כבר אינטפרייס לאתחול מובנה: ldan192  04.11.10 09:11 2
     וקראתי עכשיו שוב את התגובה שלך ואתה מדבר על להתמשק ldan192  04.11.10 10:34 3
  תשלח לי את הקוד מקור אני אנסה לעזור Net_Boy  04.11.10 19:55 4
     סבבה, בגדול אין טעם שאעלה את כל הפרוייקט ldan192  04.11.10 21:00 5
  גבר אם אף אחד לא עונה לך אז ג'וני הקטן 04.11.10 21:08 6
     סבבה, תודה. אנסה גם שם ldan192  05.11.10 12:34 8
  איכ, MFC Sn00py  04.11.10 21:08 7
  2דברים מהקוד מקור Net_Boy  05.11.10 17:04 9
     מצויין שיש כיוון! :}}} ldan192  05.11.10 18:38 10
         בוא למסנג'ר יהיה יותר נוח Net_Boy  05.11.10 18:53 11

       
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   07:54   04.11.10   
אל הפורום  
  1. אתחלת את המנוע com עם cocreateinstance?  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   09:11   04.11.10   
אל הפורום  
  2. אה כן, זו עוד בעיה, שיש לי כבר אינטפרייס לאתחול מובנה:  
בתגובה להודעה מספר 1
 
CLSID const& GetClsid()
{
static CLSID const clsid
= { 0x745395C8, 0xD0E1, 0x4227, { 0x85, 0x86, 0x62, 0x4C, 0xA9, 0xA1, 0xA, 0x8D } };
return clsid;
}
virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect, CWnd* pParentWnd, UINT nID,
CCreateContext* pContext = NULL)
{
return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID);
}

BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd,
UINT nID, CFile* pPersist = NULL, BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL)
{
return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
pPersist, bStorage, bstrLicKey);
}


אבל שוב, אין לי באמת אינסטנס של מחלקת חלון.
אפשר איכשהו להמיר את החלון הדוס שנפתח שיהיה ה-parent? או שאולי פשוט לשים NULL?


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   10:34   04.11.10   
אל הפורום  
  3. וקראתי עכשיו שוב את התגובה שלך ואתה מדבר על להתמשק  
בתגובה להודעה מספר 1
 
ישירות מול COM, נכון?
אני לא חושב שזו הכוונה במקרה הזה כי יש אינטרפייס מוכן להכל ומאחורי הקלעים זה אמור להקרא.

יש רעיונות?


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   19:55   04.11.10   
אל הפורום  
  4. תשלח לי את הקוד מקור אני אנסה לעזור  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   21:00   04.11.10   
אל הפורום  
  5. סבבה, בגדול אין טעם שאעלה את כל הפרוייקט  
בתגובה להודעה מספר 4
 
כי הוא מתמשק מול מטלאב, צריך לבצע רגיסטרציה לכל מיני DLL וכו' ובקיצור הוא לא יעבוד.
אבל הינה כמה קבצים, בתקווה שיעזרו :}



המון תודה עומר! אני קצת חדש ב-MFC אז עדיין מסתבכים לי חלק מהדברים.


נ"ב, בדקתי שהמפתח נמצא ברגיסטרי (והוא נמצא).


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ג'וני הקטן
חבר מתאריך 24.6.10
1166 הודעות
   21:08   04.11.10   
אל הפורום  
  6. גבר אם אף אחד לא עונה לך אז  
בתגובה להודעה מספר 0
 
   תשאל בSTACK OVERFLOW, אין מה לעשות.
ת'אמת שכל מה ששאלתי שם ענו יחסית מהר...
המערכת הזאת שם שנותנת סוג של תמורה למי שעוזר, עובדת חח


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   12:34   05.11.10   
אל הפורום  
  8. סבבה, תודה. אנסה גם שם  
בתגובה להודעה מספר 6
 


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Sn00py 
חבר מתאריך 1.8.02
2954 הודעות
   21:08   04.11.10   
אל הפורום  
  7. איכ, MFC  
בתגובה להודעה מספר 0
 
  

\x6C\x65\x65\x74\x68\x61\x78\x30
\x72\x3A\x2D\x29
tresp4sser


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   17:04   05.11.10   
אל הפורום  
  9. 2דברים מהקוד מקור  
בתגובה להודעה מספר 0
 
   1) זה כן COM OBJECT ואתה חייב לעשות CoCreateInstnanceל Thread בו הוא רץ
2) לא עשית לפקד CREATE, אתה חייב ליצור אותו על חלון מסוים ורק אז להשתמש בו.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   18:38   05.11.10   
אל הפורום  
  10. מצויין שיש כיוון! :}}}  
בתגובה להודעה מספר 9
 
1. זאת אומרת שאני צריך להריץ מה-main? אפשר בקונסטרקטור של אחת המחלקות?
2. כנ"ל.

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

תודה!


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   18:53   05.11.10   
אל הפורום  
  11. בוא למסנג'ר יהיה יותר נוח  
בתגובה להודעה מספר 10
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net