עבור לתוכן

פתיחת DLL של C בVB

Featured Replies

פורסם

ניסיתי להכניס DLL שיצרתי בC לVB ואני מקבל שגיאה :

80721300.jpg

אולי יצרתי לא נכון את ה DLL ?

או ששכחתי להוסיף משהו בVB ?

פורסם

1. אין לך הרשאות על הקובץ

2. קובץ פגום

3. תנסה להריץ regsvr32 DLLone.dll

פורסם
  • מחבר

3. לרשום את זה פשוט ב START כן?

זה מה שקיבלתי :

regsvr32.jpg

1. מה אני עושה לגבי זה?

2.איך אני בודק את זה?

תודה.

פורסם

1. תעתיק את הקובץ ל C:

2. תפעיל cmd (מ START)

3. תריץ פקודה cd\ על מנת להגיע ל C:

4. תריץ regsrv32 DLLone.dll

אתה צריך להריץ את הפקודה באותה ספרייה, בה נמצא ה DLL שלך

פורסם
  • מחבר

אוקיי העברתי רק את הקובץ DLLONE הזה, לא את כל התיקיה, ומשם הרצתי REGSVR32 וקיבלתי את זה:

asdasdasdbe.jpg

פורסם

סביר להניח שקובץ פגום. וא שזה בכלל לא DLL (לכל קובץ אפשר לתת סיומת DLL)

פורסם
  • מחבר

אני מצרף את התיקייה, תוכל לבדוק אם זה בסדר?

התכנית פשוטה, בינתיים סתם ניסיתי לעשות פונקצייה שמדפיה HELLO לבדוק אם זה יעבוד. בVC הרצת תכנית עובדת אבל...

בכל מקרה:

http://www.upf.co.il/file/692683720.html

פורסם

גרסת VS שלי ישנה מדי ולא פותחת את ה sln שלך

למה אתה צריך לכלול dlhead.h, הרי הוא מכיל רק class hello ללא שום פעולה?

פורסם
  • מחבר

חשבתי שצריך להגדיר אב טיפוס של הפונקציות שאתה הולך להשתמש בהן בHEADER. טעות שלי.. העניין הוא שאין ברשת אפילו מדריך אחד איך לכתוב DLL בC. הכל לC++ ולC# .

אתה יכול בבקשה לתת לי הדרכה איך להכין בצורה נכונה בC ?

כל ה"פרוייקט" שלי זה משהו ממש לא מסובך, אני רק צריך להבין איך ליצור DLL ואיך משתמשים בו. המשימה שלי היא ליצור סימולטור בVB , שזה כבר עשיתי. הוא כולל לדים,מספקים,7-סגמנט... עכשיו אני צריך ליצור DLL שיקשר בין הסימולטור לתכנית שיכתוב משתמש מסויים (בשפת C).

בסופו של דבר אני אצטרך שיהיו לי 4/5 פונקציות בDLL

SET וGET שישלחו/יקבלו מידע מהסימולטור. IN/OUT שיעשו זאת עם התכנית שכותב משתמש. וכנראה גם איזה DB (DATA BASE( דרכו אני אעביר ערכים לסימולטור. למשל בתכנית כתוב להדליק 4 הלדים הראשונים, זה יכנס לDB כמערך (סטטי) ומשם ילך לפונקציית הGET או הSET שתיהיה אחראית כבר להדליק את הלדים בסימולטור.

בינתיים אבל אפילו ליצור DLL פשוט שידפיס לי HELLO מתברר שאני לא מצליח...

פורסם

אני מתכנת ב C#, אבל זה לא ממש משנה. אני עשיתי לך אפליקציה קטנה לדוגמא, אשר משתמשת ב DLL.

TestClassLibrary הוא DLL

TestApplication היא אפליקציה עצמה

[attachment deleted by admin]

פורסם
  • מחבר

אוקיי אז בעצם בDLL אתה רק נגעת בקובץ הSOURCE נכון?

אני לא צריך להתעסק עם הHEADER?

עכשיו, אחרי הקומפילציה (של הDLL), אני מעתיק רק את קובץ הDLL לתיקיה של התכנית ומכניס אותה לREFERENCES ? לפני זה העתקתי את הHEADER, DLL וOBJ . ואז שמתי בREFERENCE את הOBJ...כנראה שזה לא נכון, למרות שזה כן עבד בתכנית בC חח איכשהו...

*אגב, כשאני בא ליצור DLL אני פותח WIN32 CONSOLE APPLICATION ואז בוחר DLL וEMPTY PROJECT נכון?

אם בהתחלה אני אפתח את הפרוייקט החדש כ CLASS LIBRARY זה כבר C++

פורסם

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

פורסם
  • מחבר

הוספתי את זה לREFERENCE . אחרי פתחתי תוכנית, ואיך אני מכליל את הDLL בתכנית? לפני זה עשיתי

#include "xxx.h"

אבל עכשיו אני לא יצרתי אפילו HEADER...

אגב, רק לוודא שאני מוסיף נכון את הרפרנס , אני עושה את זה ככה:

44096459.th.jpg

פורסם

Project => Add Reference

[attachment deleted by admin]

פורסם
  • מחבר

אצלך זה כמו בVB. אבל אצלי זה זה אחרת, כנראה בVS2010 שינו את זה.

יש לי לי החלון הזה ששמתי בהודעה הקודמת...

אגב, ניסיתי את הקוד הזה בSOURCE של הDLL לפי איזה משתמש שעשה DLL בC, מה שמוזר שאצלו אותו קוד עובר קומפילציה, אצלי לא.

#include <stdio.h>

extern "C"
{
__declspec(dllexport) void DisplayHi()
{
printf("Hi!");
}
}

אפילו הורדתי את הקובץ שלו ואצלי זה גם עובד. אבל מה שאני כתבתי, שזה בדיוק העתק של הקוד - לא עובד.

השגיאה שאני מקבל :

Error 1 error C2059: syntax error : 'string'

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים