
getArea) ואחת להיקף (getPerimeter), והן נחשפות מחוץ ל-DLL.הטקסט המלא של הדקות הראשונות בהרצאה «תרגילים על Interoperability» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
מגילים בנושא interoperability. צרו פרויקט Windows Forms Application שמכיל טופס עם לחצן אחד. כאשר המשתמש לוחץ על הלחצן הזה, כבו לו את המחשב.
בצעו shutdown למחשב שלו. בצעו את זה על ידי פונקציית API של Windows שקיימת איפשהו בין הפונקציות של Windows, זאת הפונקציה ש-Windows משתמש איתה בשביל לכבות לכם את המחשב, ובצעו את הקריאה כמובן דרך C-Sharp.
תחפשו בגוגל או ב-API גייד איזה פונקציה API מתאימה יכולה לעשות דבר כזה. צרו DLL בשפת C בעזרת visualstudio.net ובתוכו צרו סטראקט שנקרא ריקטנגל שמכיל width, height, x ו-y ממש בסדר הזה.
width ראשון, height שני, x שלישי, y רביעי. לאחר מכן צרו באותו DLL שתי פונקציות getArea שמקבלת ריקטנגל ומחזירה int והיא אמורה להחזיר את שטח הפנים של המלבן.
גט פרימטר מקבלת ריקטנגל ומחזירה אינטג'ר, והיא אמורה להחזיר את היקף המלבן. חשפו את שתי הפונקציות האלה מחוץ ל-DLL, צרו קונסול אפליקיישן ב־C-Sharp, צרו מבנה סטראקט ב־C-Sharp שנקרא גם כן ריקטנגל, ומכיל X, Y, Wid והייט אבל בסדר הזה.
קודם כל X, אחר כך Y, אחר כך Wid ואחר כך הייט. בתוך המיין צאו אובייקט מהריקטנגל ב-C-Sharp.
קיראו ל-Get Area של ה-DLL שבניתם בשפת C ושלחו לה את המלבן, הציגו את התשובה שמוחזרת. קיראו ל-Get Perimeter גם כן עם אותו מלבן והציגו את התשובה שמוחזרת.
האם הערכים שמוחזרים הם ערכים נכונים לפי ממדי המלבן ששלחתם? אם לא, כמובן אתם צריכים לטפל בזה. מצאו עד רפרנס לאיזשהו DLL משפת C++ או Visual Basic 6,