



استخدم CodeBlocks لإنشاء مكتبة ارتباطات ديناميكية للغة C واستخدامها
أولاً ، قم بإنشاء مكتبة ارتباطات ديناميكية للغة C
1. التأسيس.
File->New->Projects->Dynamic Link library->Go
اسم المشروع: Dynamic_library
حذف main.cpp و main.h في المشروع وإضافة simple.c و simple.h
قم بتعديل الكود بطريقة بسيطة.
قم بتعديل الرمز في simple.c من أجل:
2. البناء.
بعد اكتمال التجميع ، ابحث عن ملف الدليل للمشروع ، وافتح مكتبة ديناميكية / bin / Debug ويمكنك رؤية libDynamic library.a ، و Dynamic library.dll ، و libDynamic library.def.
ثانيًا ، استدعاء مكتبة الارتباط الديناميكي
1. إنشاء مشروع تطبيق وحدة التحكم
File->New->Projects->Console application -> …,->finish
اسم المشروع: dllTest
أضف "simple.h" إلى المشروع ، وانسخ الرمز من simple.h أعلاه إلى simple.h الحالي.
تعديل main.c:
2. إضافة ملف مكتبة libDynamic
عادة ، لا يعرف Codeblocks استخدام ملف المكتبة وموقعه ، يجب أن نعلن ملف المكتبة ، حتى لا يرتكب أخطاء عند الربط.
حدد القائمة Project-> Build Options… -> Linker settings-> Add to add libDynamic library.a Library file.
بالإضافة إلى ذلك ، تحتاج أيضًا إلى نسخ ملف Dynamic library.dll المترجم إلى دليل Bin / Debug للمشروع (أي إلى: Dynamic library / bin / Debug directory ).
3.3 تجميع وتشغيل
بعد اكتمال الإضافة ، يمكنك الترجمة والتشغيل ، وستكون النتائج كما يلي:
أولاً ، قم بإنشاء مكتبة ارتباطات ديناميكية للغة C
1. التأسيس.
File->New->Projects->Dynamic Link library->Go
اسم المشروع: Dynamic_library
حذف main.cpp و main.h في المشروع وإضافة simple.c و simple.h
قم بتعديل الكود بطريقة بسيطة.
كود:
#ifndef SIMPLE_H_INCLUDED
#define SIMPLE_H_INCLUDED
#ifdef __cplusplus
#define EXPORT extern "C" __declspec (dllexport)
#else
#define EXPORT __declspec (dllexport)
#endif // __cplusplus
#include <windows.h>
EXPORT int pow2(int a);
EXPORT void upstr(char *str, char *s);
#endif // SIMPLE_H_INCLUDED
قم بتعديل الرمز في simple.c من أجل:
كود:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "simple.h"
int pow2(int a)
{
return a*a;
}
void upstr(char *str, char *s)
{
int i;
for(i = 0; i < strlen(str); i++)
{
if(str[i] >= 'a' && str[i] <= 'z')
s[i] = str[i] - 'a' + 'A';
else
s[i] = str[i];
}
s[i] = '\0';
}
بعد اكتمال التجميع ، ابحث عن ملف الدليل للمشروع ، وافتح مكتبة ديناميكية / bin / Debug ويمكنك رؤية libDynamic library.a ، و Dynamic library.dll ، و libDynamic library.def.
ثانيًا ، استدعاء مكتبة الارتباط الديناميكي
1. إنشاء مشروع تطبيق وحدة التحكم
File->New->Projects->Console application -> …,->finish
اسم المشروع: dllTest
أضف "simple.h" إلى المشروع ، وانسخ الرمز من simple.h أعلاه إلى simple.h الحالي.
تعديل main.c:
كود:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "simple.h"
int pow2(int a)
{
return a*a;
}
void upstr(char *str, char *s)
{
int i;
for(i = 0; i < strlen(str); i++)
{
if(str[i] >= 'a' && str[i] <= 'z')
s[i] = str[i] - 'a' + 'A';
else
s[i] = str[i];
}
s[i] = '\0';
}
عادة ، لا يعرف Codeblocks استخدام ملف المكتبة وموقعه ، يجب أن نعلن ملف المكتبة ، حتى لا يرتكب أخطاء عند الربط.
حدد القائمة Project-> Build Options… -> Linker settings-> Add to add libDynamic library.a Library file.

بالإضافة إلى ذلك ، تحتاج أيضًا إلى نسخ ملف Dynamic library.dll المترجم إلى دليل Bin / Debug للمشروع (أي إلى: Dynamic library / bin / Debug directory ).
3.3 تجميع وتشغيل
بعد اكتمال الإضافة ، يمكنك الترجمة والتشغيل ، وستكون النتائج كما يلي:

ملاحظة: هناك بعض الاختلافات بين مكالمات dll و lib. لدعوة دلل ، يجب الانتباه إلى تلبية:
يجب إضافة مكتبة إدخال DLL إلى مشروع برنامج الاختبار. (أي ملف مكتبة)
قم بتضمين ملف رأس DLL في برنامج الاختبار. (# تضمين ".h")
ضع مكتبة DLL في الدليل المناسب. (يتم وضعها في نفس الدليل كملف exe للمشروع في المدونة)
يجب إضافة مكتبة إدخال DLL إلى مشروع برنامج الاختبار. (أي ملف مكتبة)
قم بتضمين ملف رأس DLL في برنامج الاختبار. (# تضمين ".h")
ضع مكتبة DLL في الدليل المناسب. (يتم وضعها في نفس الدليل كملف exe للمشروع في المدونة)