פורסם 2010 באוגוסט 3115 שנים אני מנסה להעלות ולהשתמש ב dll לתוכנית שלי, ראיתי שאני יכול לטעון את הספרייה עם hinstDLL = LoadLibrary("moshe.dll");וראיתי שאפשר לטעון פונקציה שאני בדיוק יודע את השם שלה ואת המשתנים.אבל הבעייה שלי היא שאת כל הפונקציות הוא הכניס בתוך class. איך אני מעלה אותו? ומגדיר אצלי כזה class?(אני משתמש ב visual studio 2008 ומפתח לתוכנה ב C++)
פורסם 2010 באוגוסט 3115 שנים למה לטעון דינמית? טען את הספרייה באופן סטטי באמצעות כפתור ימני על הפרוייקט ו-add reference.שים לב שעדיין תצטרך לעשות include לקובץ ה-header שמכיל את הגדרת הקלאס.
פורסם 2010 באוקטובר 2015 שנים מחבר תודה - אבל אני מנסה לטעון קובץ dll של מישהו אחר שלא סיפק קובץ header. יש למישהו פתרון אחר?
פורסם 2010 באוקטובר 2015 שנים אני לא חושב שזה אפשרי בכלל. הקומפיילר צריך לדעת איך נראה הקלאס על מנת ליצור אותו (הוא לפחות צריך לדעת את הגודל שלו), וזה מה שמוגדר ב-header.
פורסם 2010 באוקטובר 2015 שנים מחבר כעקרון הוא נתן לי קובץ שמכיל את כל הפונקציות שיש בclass ואיזה משתנים יש בו,ראיתי אתר שמפרסם שצריך להתחיל לכתוב הכל בעצמך ואז להעלות הכל ידנית, אבל זו חתיכת עבודה. . .ראיתי שהוא כתב משהו ב C#, אבל אני צריך לעבוד עם C++, אולי יש דרך להשתמש ב C# דרך הC++ לצורך העניין?
פורסם 2010 באוקטובר 2015 שנים אי אפשר לעשות את זה באופן ישיר - אתה צריך איזשהו תיווך (לעטוף את הקוד #C בקוד ש-++C יודע לדבר איתו).דרך אחת (פחות מומלצת לדעתי) היא COM, דרך שנייה היא באמצעות ++Managed C.
פורסם 2010 באוקטובר 2015 שנים להבנתי, אם יש לך את הגדרות ה-C# הדרושות על מנת לדבר עם DLL (נקרא pinvoke), אז אפשר די בקלות לתרגם אותם להצהרות C מתאימות.
פורסם 2010 באוקטובר 2015 שנים יש דרך ליצר lib מתוך קובץ dll שאין לך את הקוד שלו. אח"כ אתה מכליל את ה lib בפרויקט שלך ע"מ להשמש בספריותלינקים אלו מסבירים כיצדhttp://adrianhenke.wordpress.com/2008/12/05/create-lib-file-from-dll/http://support.microsoft.com/?id=131313מסביר על הנושא באופן כלליhttp://msdn.microsoft.com/en-us/library/9yd93633%28v=VS.80%29.aspx
פורסם 2010 באוקטובר 2115 שנים זה לא מספיק ליצור .lib (וגם לא נחוץ למעשה). צריך את הפרמטרים לפונקציות. אבל אם יש לך את ההצהרות ב-C# אפשר לתרגמן ל-C.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.