שאלה

eli5m

New member
שאלה

אגב תודה על התשובות הקודמות יש לי dll שכתוב ב- VC בתוכו יש לי פונקציה גלובלית שצריכה לקבל handle של חלון -- (void AttachWndHandle(HWND hWnd 1. איך אני מתממשק לdll ואיך פונים לפונקציה. 2. ה-dll מחזיר message איך מקבלים אותו ב- vb
 

ברנדל

New member
שלחתי לך פרויקט

תהפוך את ה txt ל zip. תאמין לי, אני יודע מה אתה רוצה לעשות , יש לך שם הכל! תוסיף להודעות הקיימות את הודעות ה WM_USER שלך, שגם ה vb ידע מה הערך המספרי שלהם (כי הוא מכיר את המספר כמובן ולא את השם). ההודעות שלך ישלחו לחלון (לדוגמא תמצא אותו מה c ע"י FindWindow) HWND FindWindow( LPCTSTR lpClassName, // pointer to class name LPCTSTR lpWindowName // pointer to window name ); שים בפרמטר השני את ה caption של ה vb שלך ותקבל את ה handle הרצוי. בהצלחה!
 

eli5m

New member
תודה רבה על הדוגמא אבל....

הבנתי שאני צריך להוסיף את ההודעות ה WM_USER בסדר אבל איך אני מתממשק לdll מ-vb לdll ב- VC אני מצרף את ה-dll ב-VC תהפוך את ה txt ל zip
 

ברנדל

New member
תשובה

שים ב module בנוסף לשאר יבואי ה dll:
Declare Function myFunctionBame Lib "myDllName.dll" (byval hWnd as long)​
אם ה dll מחזיר ערך ( אצלך זה void) תוסיף בסוף as long נניח או איזה ערך שהוא מחזיר אין לי מחשב בבית אלא רק בעבודה. ביום ראשון אני אבדוק אם הסתדרת. אגב כנראה לא הסתכלת במה ששלחתי , כי יש שם את ההגדרה:
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long​
שהיא בערך אותו דבר , ההבדל היחיד שבדוגמא העליונה זה user defined dll. ובדוגמא השניה זה api. בהצלחה
 
למעלה