מבקש עזרה בהפעלת VB

ofer3572

New member
מבקש עזרה בהפעלת VB

הי לכולכם אני מבקש את עזרתכם אני מתכנת אך לא בVB
. יש לי קטע קוד שכתבתי בVB דרך הVB EDITOR מהWORD. קטע הקוד הזה טען DLL שלי שאני כתבתי הריץ אותו וביצע מה שביצע. הכל עבד כמו שצריך באופיס2000. עכשיו באופיס 2003 ו2007 אותו קטע קוד בדיוק לא עובד! אני מקבל הודעת שגיאה שלא ניתן למצוא את DLL שלי וכן גם מקבל RUNTIME ERROR 53 . וכמובן מיותר לציין שהDLL שלי נמצא בדיוק באותו המקום שהיה קודם. ואין לי מושג מה השתנה שם. יכול להיות שהיו שינויים בSYNTAX של VB במעבר בין אופיס 2000 ל 2003? תוודה רבה מראש לכל מי שיענה. אגב ניסיתי לחפש בגוגל וקיבלתי כל כך הרבה תוצאות חיפוש עד שלא מצאתי את הידיים והרגליים
האם יש למישהו רעיון? שוב תודה מראש
 

ofer3572

New member
אני מתנצל מראש שאני נודניק. אבל אני די נואש

אני יודע שזה לא הכי מנומס להקפיץ הודעה לראש הדף אם לא עונים לך. ואני מתנצל שוב . אבל מי שיכול לענות לי אני אודה לו אני פשוט נואש. כמו שכתבתי קודם אני לא מתכנת VB ולא כל כך מכיר את הSYNTAX ואין לי מושג למה זה עובד באופיס 2000 אך לא באופיס 2003 ו2007. כנראה שלאדון ביל גייטס הפתרונים למה הם לא שומרים על תאימות אחורנית
. אז שוב תודה למי שיענה.
 

MaD-d0g

New member
אפשר קצת יותר פרטים ?

האם ה DLL רשום במערכת ? (regsvr32) מהי בדיוק השגיאה 53 (מה התיאור) ועל איזו שורה היא עולה ?
 

ofer3572

New member
קודם כל תודה רבה ../images/Emo13.gif

זה DLL "רגיל" פשוט שאני כתבתי בלי RGISTRY זה לא DLL COM. כשאני מריץ אני מקבל Run-time error '53': File Not Found אני מקבל את זה על השורה הראשונה בקוד שם אני אני מצהיר על הDLL. כמו שאמרתי אני לא מתכנת VB. וכן הDLL אכן נמצא במקום הנכון
. הקוד שלי עובד מצויין שאני מריץ אותו דרך ה VB מהWORD 200. אבל דרך הVB של אופיס 2003 2007 ואפילו דרך VB6 אני תמיד מקבל את אותה השגיאה. האם נראה לך שהיה שינוי בSYNTAX של הVBבין אופיס 2000 לגירסאות הבאות שלן? אני קורא לDLL כך (דרך VB של WORD 2000): Private Declare Sub MyDllFunc Lib "C:\Demo\MyDll.dll" (ByVal xParam1 As String, _ ByVal xParam2 As String, ByRef xParam3 As Integer) האם זה נכון לקרוא כך לDLL בגרסאות הVB החדשות יותר? ושוב תודה מראש
 

MaD-d0g

New member
נראה לי פחות או יותר בסדר ../images/Emo13.gif

הנסיון שלי עם DLL ב VBA לא מזהיר.. אבל יש לך את הקוד של ה DLL ? אולי משהו שבו השתנה וצריך לדבג אותו..
 

ofer3572

New member
לא השתנה בDLL כלום ממש כלום.

מה שהשתנה זה סביבת הVB. עכשיו אם אתה לא יודע אז אני באמת מיואש... האם אתה יכול אוליי להמליץ לי על אתרי VB טובים שאולי בעזרתם ניתן להגיע לפיתרון? תודה בכל אופן
 

MaD-d0g

New member
אני מכיר מקרים קצת שונים...

למשל קוד שכתבתי על אקסל/אקסס 97/200 לא חושב על לרוץ ב XP/2003. מדובר על סביבה שונה כנראה. אם יש לך את הקוד של ה DLL אפשר לבדוק אותו... האם יש לך את זה ? בעקרון גוגל זה מקור המידע הכי גדול שיש
אבל יש אתר בשם Experts Exchange. שם תוכל לשאול (באנגלית) ומיטב המומחים יענו לך... רק תשתדל להיות ברור ולפרט
בהצלחה !
 

ofer3572

New member
אוקי שוב תודה

לצערי אני לא יכול להעלות את הקוד. בסה"כ יש הצהרה על שגרות הDLL והפעלתן. אבל אם אמרת שמה שעבד לך בVB 97/2000 לא עובד לך בXP/2003. כנראה שזה משהו גורף שידידינו ממיקרוסופט עשו
. אני חיפוש מהיר של הבעייה באתר שהמלצתי לי עליו והם ישר הקפיצו אותי לעמוד של גוגל כבר לא ידעתי אם לצחוק או לבכות. אני מחפש משהו קן בגוגל ומקבל עשרות אלפי תשובות ועכשיו לך תדוג שם את מה שאתה באמת צריך
בכל מקרה שוב תודה רבה
 

טרמפיסט

New member
תן לי להבין

אתה מריץ את הקוד מאותו המחשב רק באמצעות סביבות עבודה שונות; באחת מהן אתה מקבל שגיאה ובשניה הוא עובד ללא הפרעות?.. מוזר מאוד. וודא קודם כל שהשגיאה אינה מגיעה מה-DLL עצמו, כלומר הפונקציה שבתוך ה-DLL מנסה ליצור קשר עם קובץ שאינו קיים. כהמשך נסה לרשום את ה-DLL באמצעות regsvr32, אולי זה מה שיפתור לך את הבעיה. בבעיות לא הגיוניות מהסוג הזה כל פתרון לא הגיוני יכול לעזור.
 

ofer3572

New member
אני לא מריץ את הקוד מאותו המחשב

אני מריץ כמה מחשבים שונים אחד עם אופיס2000 ואחד עם אופיס2003 ואחר עם אופיס2007. ובאופן ודאי הDKLL נמצא במקום הנכון רק שהVB לא מצליח למצוא אותו. בDLL אין בעייה היות והקוד רץ על אופיס 2000בצורה מושלמת ללא בעיות. וכן לגבי הDLL - זה DLL "טהור" שאין צורך לרשום אותו לREGISTRY באמצעות regsvr32. וכן הDLL אינו מנסה ליצור קשר עם העולם החיצון אלא להפך העולם החיצון מפעיל שגרות בDLL ואין לDLL מושג מי הפעיל אותו. אבל לדעתי כמ שנכתב בשרשור הקודם החברה ממיקרוסופט בטח שינו משהו בVB בין גרסאות האופיס. ותודה על העזרה בכל אופן
 
למעלה