הדרכה ליצירת dll בC - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

הדרכה ליצירת dll בC


Ovid

Recommended Posts

שלום,

אני צריך ליצור dll שמקשר בין תוכנית שכותב משתמש מסויים לבין סימולטור (הוא כתוב הvb והוא כולל 7-סגמנט ,לדים ,מפסקים וכו'..)

בעיקרון אני צריך get ,set ,כלומר פונקציות שולחות\מקבלות נתונים מהסימולטור , ופונקציות in\out שיתקשרו עם התכנית שכתב המשתמש.

יש משהו ספציפי שאני צריך לדעת לגבי כתיבת dll ? איך אני מתחיל? זקוק להדרכה ..

תודה.

יום טוב.

קישור לתוכן
שתף באתרים אחרים

בגדול כתיבת DLL ב-C די דומה לכתיבת ספריה סטטית (DLL היא ספריה דינמית).

תתחיל בלכתוב ספריה רגילה.

האמת היא שיש עוד כמה עניינים ב-DLL שקשורים ל-multi thread ו-multi process, אבל אני מסופק שאתה צריך להתעסק עם זה.

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

קישור לתוכן
שתף באתרים אחרים

לא יצא לי לכתוב ספריות סטטיות עדיין.

אגב, אין מחלקות בC נכון? אני חייב להשתמש במבנים במקום מחלקות? או שאולי גם את זה אני לא צריך?

כמו שאמרתי, זה DLL די פשוט, הוא מקשר בין סימולטור שיצרתי בVB לבין תכנית שיכתוב משתמש מסויים. צריך 4 פונקציות בהן, 2 לקבלה/שליחה עם הסימולטור,והשתיים האחרות לתכנית.

עכשיו, את הפונקציות האלה ,אחרי שאני פותח פרוייקט > קובץ DLL , איפה אני כותב? יש לי 3 קבצים בSOURCE FILES , אחד בשם שיצרתי, השני DLLMAIN והשלישי STDAFX.

יש לי עוד שני קבצים ב HEADER, אני צריך לגעת בהם?

מתי אני צריך להשתמש בDLLEXPORT/DLLIMPORT ? האם זה קיים רק בC++ ?

מצטער על השאלות הNOOBיות.

תודה.

כתבתי בינתיים משהו. לדעתך זה יכול לעבוד ?

זה הHEADER

#ifndef Sim_dllHD_H
#define Sim_dllHD_H

#if defined DLL_EXPORT
#define DECLDIR __declspec(dllexport)
#else
#define DECLDIR __declspec(dllimport)
#endif

extern "C"
{
DECLDIR int Set( );
DECLDIR int In( );
DECLDIR void Get( );
DECLDIR void Out( );
}

#endif

וזה הSOURCE

#include "stdafx.h"
#include "Sim_dllHD.h"
#include <stdio.h>

#define DLL_EXPORT
extern "C"
{
DECLDIR int Set()
{

}

DECLDIR void Get()
{

}

DECLDIR int In()
{

}

DECLDIR int Out()
{

}
}

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...