בעיית המרה

cganir

New member
בעיית המרה

שלום. ברשותי ספריית פקודות המחולקת למספר קבצי DLL ב C++, כאשר נקודת המוצא שלי היא DLL אחד שמעלה את כל הספריה ומספק את כל השירותים. בנוסף ישנם מספר מחלקות ומבנים אשר מוכרזים ב HEADER של ה DLL הזה, שעלי להשתמש בהם בתוכנה. הבעיה : יש צורך להפעיל את הספריה הזו תחת C#. פתרון אחד כבר מצאתי - יש לכתוב CLASS חדש ב C# שיהווה WRAPPER, עם DLLIMPORT וכדומה. זו עבודה מיגעת וארוכה, ודורשת המון השקעה - במיוחד על המרת פורמט המשתנים של C++ ל NET, כולל מצביעים ו REFERENCES. הבעיה מסתבכת עוד יותר כשמדובר ב STRUCTS ו CLASSES שקיימים בספריה, מוכרזים ב HEADER - איף אני מכריז עליהם או מיבא אותם ל C# ? תודה.
 

סומבודי

New member
תבנה עוטף ב-MC++

ב-Managed C++.net ניתן להשתמש ב-c++ interop במקום ב-DllImport. חלק מהמחלקות תוכל להפוך למנוהלות פשוט ע"י הוספת מילת מפתח. משתני מחסנית חברים מסוג struct או class ניתן לנהל באמצעות pinptr או להפוך למצביעים. אם מדובר בפרוייקט שלא עתיד להשתחרר בתקופה הקרובה, הייתי מציע לעשות זאת בבטא 2.0, שם העניין יותר מובנה וקל.
 

cganir

New member
תודה

מה דעתך גם להדגים ? יותר פשוט להבין כשאתה רואה קוד כזה. תודה.
 
למעלה