חיבור DLL Interop דוטנט לתוכנה שכתובה בC++
-
למישהו יש נסיון עם חיבור DLL Interop דוטנט לתוכנה שכתובה בC++.
את הDLL אני כתבתי.
את התוכנה בC++ לא אני.
אני צריך שכמות השינויים בC++ תהיה ממש מינורית ומזערית. (זה חברה שלא ששה כ"כ לשתף פעולה)
ומצד שני יכולת לחשוף את הclass בשלמותו לC++.משהו כמו CreateObject מ VB יכול מאד לעזור (שם יש ממש יכולת לחשוף קלאסס שלם בלי לחבר אותו בפועל)
למי שיש נסיון אשמח אם ישתף מהתובנות שלו.
תודה רבה
-
למי שיש נסיון אשמח אם ישתף מהתובנות שלו.
אין לי נסיון...
רק רציתי להעיר שיש 2 טכניקות לחשוף class מ-dotnet ל-c++ כאשר שניהם לא צריכים שום שינוי ב-C++. מן הסתם זה ידוע לך... אבל מי יודע, אולי עזרתי לך או למישהו אחר.
א. כל class ב-dotnet, יכול להיות אובייקט COM, כך שאפשר להשתמש בו מ-C++.
ב. יש פה טכניקה, אולי זה יותר עבודה בשבילך אבל פחות עבודה לאלה שיצטרכו לתכנת מול ה-class שלך, כי זה נחשף כ-class רגיל של C++ ולא כאובייקט COM. -
@yossiz
מה שכתבת בא' זה מה שנקרא interop וע"ז שאלתי. כי החברה הזו טוענת שזה לא הולך להם כ"כ.לגבי ב זה גם נראה אינטרופ רגיל רק עם עוד טריק.
אני עוד מעט יחקור יותר טוב מה הוא מציע שם.תודה בכל אופן!
אם יש מישהו עם נסיון פרקטי, אני אשמח לשמוע כללים א-ב-ג וכו'.זה חברה שאני לא אמור לעבור עבורם. אלא רק לספק את הDLL בשבילם.
הם אלו שאמורים לעבוד על הצד שלהם מצד אחד.
מצד שני, זה ממש מעכב את הלקוח שלי שהם לא מסתדרים עם זה.... -
@clickone אמר בחיבור DLL Interop דוטנט לתוכנה שכתובה בC++:
מה שכתבת בא' זה מה שנקרא interop וע"ז שאלתי. כי החברה הזו טוענת שזה לא הולך להם כ"כ.
ברשותך, (למרות שחסר לי נסיון פרקטי), לא הבנתי. interop זה משהו שאתה אמור לעשות ל-DLL שיחשף כאובייקט COM. אם אתה עשית את שלך, (ואולי תכתוב hello world קטנטן לוודא שזה עובד), במה הם יכולים להסתבך? ואם הם עדיין מסתבכים מה יעזור שתשאל אתה? הם צריכים לשאול.
@clickone אמר בחיבור DLL Interop דוטנט לתוכנה שכתובה בC++:
לגבי ב זה גם נראה אינטרופ רגיל רק עם עוד טריק.
ממש לא. זה טכניקה אחרת לגמרי, לכתוב DLL משולב native ו-CLR ביחד, ושזה יחשוף את ה-class שלך. התוצאה, שלגביהם זה נראה כ-class של C++ רגיל לגמרי, הם לא צריכים לדעת שהמימוש ב-dotnet. משא"כ ב-interop שזה נחשף כאובייקט COM שכידוע יותר מסובך לתכנת מולו.
דרך אגב, התרגום של המילה interop זה "שיתוף פעולה". כך שזה מתאים לשתי הטכניקות
-
@yossiz
זה חברה לא קטנה.
מה שאני למדתי בתקופה האחרונה (עשיתי אינטגרציה עם כמה חברות כאלו. כולם גדולות פי כמה ממני [אני חברה של איש אחד והם מתחילות ב10 עובדים עד מאות עובדים]) שהחברות האלו רוצות לעבוד כמה שפחות. ואם לא תאכיל אותם בכפית, זה לא יעזור.
הם פשוט יאמרו לך, לא עובד לי .
תכלס, עד שלא הבאתי להם קוד C# להתממשק לAPI זה לא עזר והם "הסתבכו" איך להתחבר למערכת שלי.
הDLL הזה אמור לפתור חלק מהבעייה. רק שחשבתי שזה יהיה להם פשוט להתחבר אל הDLL.
מסתבר שגם בזה, אם אני לא אאכיל אותם בכפית, זה לא ילךעברתי שוב על הלינק השני, אני אנסה לממש אותו עוד מעט.
בכל מקרה לא נראה לי שהוא מציג משהו שונה מאד מהקובץ tlb שהVS מביא.
והוא אמור לחשוף באותה דרך +- את הקבצים.
בכל מקרה, הסתכלתי על זה ממש מלמעלה, אני יעבור על זה שוב עוד מעט ואאעדכן.תודה רבה!!