עבודה עם VB ו ++C

nedisrael

New member
עבודה עם VB ו ++C

יש לי איזו התלבטות קטנה בעניין, ואני אשמח לקצת עזרה. אני רוצה לבנות משחק בין שחקן אנושי מול המחשב בו הממשק הגרפי יהיה בנוי ב- VB ויאפשר למשתמש לבחור את המהלך הרצוי והמנוע שיחשב את המהלכים עבור המחשב יהיה בנוי ב- ++C. אפשרות אחת היא לקמפל את פרוייקט ה- ++C לקובץ DLL ולהשתמש בפונקציות החישוב שלו מתוך פרוייקט ה- VB. העניין הוא שכדי לחשב את המהלכים האופטימליים עבור המחשב, המנוע צריך לקבל את המצב הנוכחי של לוח המשחק. להעביר בכל פעם את לוח המשחק מה- VB ל- ++C זה בזבוז גדול ולפי הבנתי, אם אני קורא לפונקציית אתחול לוח המשחק במנוע מתוך ה- VB, המערך כבר יעלם ברגע שתסתיים את הפונקציה ובקריאה הבאה לפונקציה אחרת מתוך ה- VB, כבר לא תהיה אפשרות לגשת למערך שאותחל לפני כן. או שאני טועה? אם אני צודק, רציתי לדעת אם יש דרך להריץ את ה- VB וה- ++C במקביל, כך שהלוח יאותחל בתחילה בשניהם, ה- VB ישתמש בפונקציות מהמנוע, אך שהמערך\לוח שאותחל במנוע בתחילת המשחק לא יעלם ויאפשר גישה מה- ++C למערך. רק כשהמשתמש יחליט לסגור את אפליקציית ה- VB, גם המנוע יסגר. עוד משהו, קצת יותר בנאלי. איך אני מקמפל פרוייקט או מחלקה ב- ++C לקובץ DLL? אני לא מוצא את האפשרות הזו ב- Visual Studio 6. ב- VB האפשרות היחידה היא ליצור ACTIVEX מבוסס DLL, נכון? תודה רבה לכל מי שיקרא את ההודעה הארוכה הזו ועוד יותר למי שיענה
 

selalerer

New member
תוכל ליצור אובייקט לוח...

...ב DLL (עם טיפוסים שמתאימים לVB) וליצא ממשק אליו לVB ופשוט להעביר reference אליו לפונקציה.
 

nedisrael

New member
הוספת קובץ DLL מ- ++Cלפרוייקט VB

בעיה טכנית קצת מוזרה שיש לי. כתבתי מספר פונקציות ב ++C ב- visual studio 6 לפרוייקט win32 dynamic link library, ביצעתי קימפול לקובץ DLL. אך כשאני מנסה להוסיף ב- references של ה- VB את קובץ ה DLL, אני נתקל בהודעת can't add a reference to the specified file. למישהו יש מושג למה? ואם יש טעות במה שביצעתי, איך אני אמור להשתמש בקובץ DLL מקומפל ב ++C ב- VB? תודה
 

ilankt

New member
ככה:

תשים את הDLL בספרייה של הקובץ של VB (או בספרייה של windows) ואז תעשה ככה:
Private Declare Function FunctionName Lib "[dll name]"([parameters here]) As [type] 'example from win32 api Private Declare Function SetCursorPos Lib "user32" Alias "SetCursorPos" (ByVal x As Long, ByVal y As Long) As Long​
 

nedisrael

New member
מוזר..

בפונקציית ה- API אני מצליח להשתמש, אך בפונקציה שכתבתי לבד גם ב ++C וגם ב- VB (יצרתי פרוייקט ACTIVEX DLL, כתבתי בקלאס את הפונקציה ואז ביצעתי MAKE PROJECT DLL ואז הכנסתי את קובץ ה DLL שנוצר לספריית הפרוייקט שבו אני רוצה להשתמש בפונקציה) ה VB לא מזהה ונותן לי הודעות שגיאות. אם אני מספק יעד מדוייק לקובץ (כולל אות כונן וספריות בהן הוא נמצא) אני מקבל את התעופות עם ההודעות הבאות: can't find dll enter point "function name entered" in "given file position enterd" או אם אני לא מספק מיקום קובץ מדוייק, ורק שם קובץ: file not found: "function name entered"
 
למעלה