עבודה מול DLL

../images/Emo41.gif עבודה מול DLL

התקנתי על ה XP מדפסת (מחוברת ב USB), שאני מעוניין לעבוד ישירות מול ה DLL שלה (יש תעוד של היצרן למפתחים). לקחתי את ה DLL של המדפסת, העתקתי אותה לתיקייה חדשה, שבתוכה כתבתי קוד שמתממשק ל DLL ומפעיל בו פונקציה מסויימת (בדיקת תקינת מדפסת, למשל), אך הנ"ל לא עובד. 1. האם יתכן שאני לא יכול להעתיק ולעבוד כך סתם מול ה DLL, ואני חייב לעבוד מול ה DLL במיקום שמערכת ההפעלה מכירה אותו, ולשם היא התקינה אותו (כשהוספתי חומרה חדשה, ל system32 למשל) ? 2. כיצד אני יכול לדעת מול איזה DLL (אולי הוא קשור לעוד כמה..) בדיוק מערכת ההפעלה עובדת כאשר היא מפעילה את המדפסת ? (חיפשתי במנהל ההתקנים / לוח בקרה, לא מצאתי משהו מעניין)
 

נוייברט

New member
אני לא יודע מה עם XP

אבל ב 98 בדרך כלל מעתיקים את ה DLL לתיקיה System של ווינדוס(לא חובה) וצריכים לרשום את ה DLL ברגיסטרי
 

נוייברט

New member
אל תיפגעי פשוט

סיגננתי את זה מהר ואמא שלי שהייתה לידי אמרה לי שזה פוגע לכתוב מה הקשר אז אני שואל מה זה קשור?
 
מסור ד"ש לאמא ../images/Emo13.gif

לא קשור מכיוון שאני לא צריך לרשום את ה DLL ברג'יסטרי לטובת מערכת ההפעלה, כי לא מערכת ההפעלה צריך להפעיל את ה DLL, אלא אני ישירות.
 

נוייברט

New member
אבל....

מערכת ההפעלה צריכה לדעת שקיים כזה DLL כדי שתוכלי להשתמש בו היא המתווכת ביניכם(לפי מה שידוע לי, אני לא מבין כל כך טוב ברישום),חוצמזה מה זה מפריע שיש את ה DLL למערכת הפעלה הרי היא לא תשתמש בהם אם אף אחד לא יבקש ממנה.
 

Beigelman

New member
כל מה שאתם רושמים לא קשור

אני לא יודע איך זה ב 98 אבל ב XP כל עוד ה DLL נמצא בתוכנת התקייה התוכנה תדע לעבוד איתו. דבר שני, אם התקנת את הדרייבי כנראה יש את ה DLL הזה בתקיית המערכת והוא רשום במערכת, לכן אני לא רואה סיבה לצרף אותו לתקיית התוכנה (אלא אם אתה מעביר את התוכנה למישהו אחר שלא התקין את הדרייבר).
 

נוייברט

New member
שלום...

אני כותב כאן משהו שקצת לא קשור לפורום אבל ממש צורם לי, אתה יכול לא להתייחס אם אתה רוצה. ראיתי גם פה וגם באתר דוקטור VB את החתימה שלך שכתוב בה להיכנס לאתר fuck the god וזה ממש ממש צורם לי ולעוד כמה חברים שלי שראו את החתימה סך הכל רוב אלא שגולשים פה מאמינים באלוקים, מיכנסתי לקישור וראיתי שם כל מיני "דרשות" שלך אבל לא מצאתי דבר שאתה תוקף את אלוקים לכן הייתי מאד שמח אם תוכללהסביר לי בלי לתקוף את פשר החתימה שלך תודה מראש
 

davidea

New member
עבודה מול DLL הינה מסודרת מאד:

ראשית, אמרת שיש תיעוד. מה רשום שם?כעת, ב VB שרוצים לדבר עם DLL יש להכריז על כל פונקציה שלו ולציין שהפונקציה ממוקמת למעשה בקובץ ה DLL בדרך דומה לזה:
Declare Function PrinterCheck Lib "YourPrinter.Dll" (ByVal YourTest)​
כל השמות הנ"ל דמיוניים ובאו רק להמחיש את אופן ההגדרה של הקשר בין התוכנה שלך לקובץ ה DLL. האם יש משהו כזה בתיעוד שלך? האם יש משהו כזה בתוכנה שלך? כל פונקציה שב DLL חייב לקבל שורה כזו משלה אם רוצים לנצל עוד פונציות ב DLL. יש עוד שיטה שבה מדפסות מדברות עם VB וזה ע"י כך ש VB שולח Escape Codes אל המדפסת. האם התיעוד דווקא מדבר על שיטה זו?
 

Beigelman

New member
אוקיי

קודם כל, אני לא מבין למה אתה אתה לא פונה אליי במסר פרטי בשאלה הזאת (שהיא יחסית הגיונית). עכשיו, למה אתה חושב שאני אמור "לתקוף" את האל? בכל מקרה. אם אתה לא שם לב אתה צריך להסתכל יותר טוב. (או לשפר את הבנת הנקרא, בלי להעליב כמובן. כולנו אחים!)
 

ארזירון

New member
ואני אכתוב משהו שגם לא קשור

לא לפורום, ולא לשאלה עצמה, אבל קשור לתגובה שלך. האינטרנט הוא מדיום מאוד פתוח. כמו הרבה דברים אחרים, הוא מיועד להרבה מאוד אנשים. חלקם מאמינים באלוהים וחלקם לא. כמו שלך "צורם" המשפט המדובר, לאחרים צורמים דברים אחרים כגון שגיאות כתיב ושגיאות תחביר. מצד שני, אני לא רואה אנשים משקיעים יותר מידי בבדיקת איות, שלא לדבר על תחביר, לפני שהם שולחים הודעה בפורום כזה או אחר, או מפרסמים משהו ברחבי האינטרנט. יתרון, ואולי גם חסרון (כמו שאומרים עליה וקוץ בה) בהחלט גדול של האינטרנט זה שנפתחו אופקים מאוד רחבים ומספר לא קטן של אנשים יכול לפרסם ולשתף חומר שלפני מספר לא רב של שנים היה בלתי אפשר. זה שהוא יכול לכתוב משהו שיגיע לתפוצה כל כך רחבה זה כבר מרשים. אתה, מצד שני, בייחוד אם זה צורם לך, לא חייב לקרוא
ועל זה אפשר להגיד גם חייה ותן לחיות. (אמרתי שזה לא קשור)
 

tenen

New member
אם כבר לא קשור

ישנן נורמות התנהגות מסויימות שמצפים מאנשים לשמור עליהן כחלק מהתחשבות הדדית בלי שום קשר לחופש ביטוי בדיוק מכמו שזה לא חופש ביטוי לצעוק פצצה בתאטרון שהרי המטרה היא הטרדה של אחרים גם החתימה של הגולש מטרתה לעצבן אנשים אחרים ותו לא ולכן אני רואה בזה דבר צורם למרות שאין לי יותר מדי במשותף עם הדת. אני חייב לציין שגם לי מאוד מפריעה שאנשים כותבים הודעות מלאות בשגיאות כתיב, ללא שום סימני פיסוק, אשר רחוקות מאות מתחביר נכון ואם זאת כאשר אין הכוונה להעליב/לפגוע במשתמשים אחרים ע"י פרובוקציה אני מוכן לקבל את זה שישנם אנשים שכתיבה נכונה זה מהם והלאה ולהתפשר על כתיבה שאינה מעליבה :)
 

Beigelman

New member
תגובה לשנכם

אני דווקא מאוד 'מתחשב בצורה הדדית', ברגע שיעצרו אותי מלהגיד מה שיש לי להגיד, אז נראה את חוסר ההתחשבות. יש עוד מספיק אנשים במקומי שחושבים שצריך לרשום "Fuck the god", אתם מתחשבים בהם? נראה לך שהמטרה של החתימה היא לעצבן? זה באמת איכפת לי אם אתה מתעצבן או לא מתעצבן כשבכל מקרה אני לא רואה אותך? נאפשר לכולם להגיד מה שהם רוצים, זהו כבוד הדדי. איפה הכבוד שלך אליי ברגע שאתה משתיק אותי? אני שמח שגם אותך מטרידה הבעיה של שגיאות כתיב ודיקדוק, הגיע הזמן להתחיל לתקן אנשים, כדי שילמדו בסופו של דבר. (ואני לא מדבר על אנשים עם בעיות רציניות שיוצא לנו לפגוש בפורומים מפעם לפעם). ארזירון המנהל התותח! מה נשמע? מלא זמן לא דיברנו (לא הייתי פה בתקופה האחרונה). בכל מקרה, אני מסכים עם ההודעה שלך, אני רק רוצה לציין שעדיין אנחנו לא יכולים להיות חופשיים לגמרי ברשת. אם למשל הייתי פותח אתר רציני שמסביר לגמרי את פשר המשפט Fuck the god הממשלות והאפיפיור היו העקבותיי, העולם עדיין נשלט ע"י הכנסייה. נקודה למחשבה...
 

Suli

New member
אליה*

אליה=זנב של שועל(?) שנחשב לדבר מאד יפה, אבל כשיש בו קוץ זה פתאום לא כל כך יפה ונעים למגע.
 

davidea

New member
אליה....

הזנב הוא של הכבש. הוא נחשב טעים ולא יפה. הקוץ יכול להתקע בגרון ולכן אליה וקוץ בה.
 

ארזירון

New member
לא קשור ../images/Emo13.gif

אני חייב לתת גם תשובה אחת לפחות שתסביר, למרות שדויד נתן פתרון עקרוני. יש שתי דרכים להשתמש בקבצי DLL חיצוניים בתוכנית של VB. הכל תלוי ב-DLL עצמו. בעיקרון, או שה-DLL "עוטף" בתוכו רכיב COM, ובמקרה כזה אכן צריך להוסיף אליו reference, כמו שאמרת. ברגע שיש רכיב COM השימוש בו יהיה משהו בסגנון של הצהרה על משתנה מסוג הרכיב, יצירת instance, ושימוש. מנגד, יש את האפשרות השניה, שקובץ ה-DLL לא מכיל רכיב COM, אלא קריאות מסוג API "נקיות". במקרה זה יש להצהיר על כל פונקציה שרוצים להשתמש בה, ולפנות אליה ישירות, כמו שדויד נתן דוגמא למעלה. כאשר פונים אל WinAPI למשל, זה מתבצע באותה דרך. הסיבה היא שרוב הפניות אל מערכת ההפעלה פונות אל פונקציות API של המערכת, ולא אל רכיבי COM של המערכת. עכשיו, אחרי ההסבר הזה, כיון שיש תיעוד למערכת, יהיה כתוב בתיעוד אם יש להפעיל רכיב COM או פונקציות API. אם לא כתוב באופן ספציפי על רכיב COM, הכוונה היא לפונקציות API.
 
למעלה