עבור לתוכן

אינטגרציה בין C++ ל VB

Featured Replies

פורסם

שלום לכולם.

אני מחפש דרך לבצע אינטגרציה בין C++ ל VB, כלומר לייצא אובייקטים (class) מתוכנית הכתובה בשפת C++

לתוכנית הכתובה בשפת VB.

סביבת העבודה היא visual studio 6.

שמעתי על פתרונות כגון activex או COM, אבל מאחר שאין לי ניסיון איתם אשמח לרעיונות.

פורסם

אתה עובד עם כלים די מיושנים, אבל אם אתה מתעקש

תדאג לחלוקה הגיונית בין 2 סביבות הפיתוח כך שבכל סביבה תפתח מה שהיא חזקה בו

VB חזקה מאוד במה שקשור לממשק משתמש GUI , הרבה יותר פשוט , זמן פיתוח הרבה יותר מהיר.

VC++ טובה יותר לכתיבת COM Object , כתיבת שרתים, שכבות תוכנה נמוכות יותר, כל מה שלא GUI כמו טיפול בקבצים, מסדי נתונים, משימות RealTime ו- Multithreading

אחרי שהחלטת מה אתה עושה איפה, לרוב תגיע למצב שתיהיה לך תכנית ב- VB שמשתמשת באיזשהו DLL שנכתב ב- C++ (ולא ההפך)

אתה צריך לפתוח פרוייקט COM ב- C++ להגדיר את כל החלקים הפרטיים שהאובייקט שלך מבצע ולבסוף את הפונקציות הציבוריות שניתנות לגישה מ- VB

מקמפל את פרוייקט ה- C++

ב- VB אתה הולך לתפריט tool=>References ומוסיף את ה- DLL שנוצר מפרוייקט ה- C++

עכשיו כאשר אתה מגדיר אובייקט מהסוג שמוגדר ב- DLL אתה אמור לראות את כל הפונקציות הציבוריות שהגדרת לו

פורסם

סליחה על ההקפצה, טעות בלחיצה על הכפתור

פורסם
  • מחבר

טוב אז קדם כל המערכת בנויה פחות או יותר כפי שאמרת - דרייבר שכתוב ב C++ וGUI שכתוב ב VB.

הרעיון או קי נשמע נחמד, רק יש לי כמה שאלות בנושא:

- האובייקטים שאני מיצא לא מכילים טיפוסים פשוטים, בחלקם ישנן מצביעים, בחלקם אובייקטים מקוננים ובאחרים אובייקטים מה STL.

כמה מסובך יהיה לכתוב לכל אחד מהם COM משלו?

- האם הממשק יהיה הפוך, כלומר האם אוכל למלא את האובייקטים בנתונים ולהעבירם לתוכנית C?

נ.ב כן אני יודע שהכלים לא הכי חדישים, ושב .net הכל יותר פשוט, אבל איך נגדיר את זה.....הוראות מלמעלה...;)

פורסם

זה לא אמור להיות מסובך, רק שאני די חלוד ב- ++VC ומזמן הסרתי אותו מהמחשב שלי

קודם כל אני מקווה שאתה כותב Object Oriented כלומר הכל אצלך ב- class - ים ולא פונקציות חופשיות כמו ב- C

דבר שני ממה שאני זוכר

כאשר אתה עומד ב- VC++ על פרוייקט COM ועושה קליק ימני צריכה להיות לך אופציה של הוספת Intreface

Intrafce זה סוג של class מאוד "דק" כלומר הוא כמעט לא מכיל שום לוגיקה אלא משמש כמתווך לעולם החיצון

וב- Intraface אתה אמור להגדיר את אותן פונקציות ציבוריות שנגשות ל- class - ים הפרטיים בתוך הפרוייקט וקוראות לפונקציות שלהן

פרוייקט ה- VB שלך אמור "לראות" רק את ה- interface שהגדרת

לא רק VB ידע להפעיל את האובייקט שלך כי אם כל סביבה אחרת ש-"מכירה" את הפרוטוקול של COM, כמו Delphi, C++Builder ויש גם כמה סביבות C

פורסם
  • מחבר

כן הפעם הכל כתוב ב OO - למדתי מספיק מטעויות עבר...

וגם interfance זה לא דבר חדש

אז אני מתאר לעצמי שכל מה שנשאר זה ללמוד קצת את הנושא.

תודה על העזרה.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים