الرئيسية المنتدى مركز رفع الصور صفحتنا على الفيس قناة اليوتيوب صفحتنا على تويتر واتس اب قوانين المنتدى
منتدى مجمع التطوير    

العودة   منتدى مجمع التطوير > المنتدى المتخصص > لغـات البرمجـة والمشـاريع الجـاهزة > برامج Microsoft Visual

الملاحظات

برامج Microsoft Visual يهتم بموضوعات vb.net ,c#, css, Visual Basic

آخر 10 مشاركات مواقع للحصول على باك لينكس عالية (الكاتـب : admin - آخر مشاركة : سنبول - مشاركات : 1 - المشاهدات : 1533 - الوقت: 10:19 PM - التاريخ: 09-23-2021)           »          التقليد المذموم (الكاتـب : admin - مشاركات : 0 - المشاهدات : 345 - الوقت: 06:44 PM - التاريخ: 09-06-2021)           »          الخداع (الكاتـب : admin - مشاركات : 0 - المشاهدات : 253 - الوقت: 06:43 PM - التاريخ: 09-06-2021)           »          إعلانات شركة Admaven (الكاتـب : سنبول - مشاركات : 0 - المشاهدات : 396 - الوقت: 04:20 PM - التاريخ: 08-26-2021)           »          جدار روحك يريد أن ينقض (الكاتـب : admin - مشاركات : 0 - المشاهدات : 442 - الوقت: 11:27 PM - التاريخ: 08-23-2021)           »          سعر الذهب في مصر وعالميا صباح اليوم الخميس 12 أغسطس 2021 (الكاتـب : admin - مشاركات : 0 - المشاهدات : 421 - الوقت: 02:58 PM - التاريخ: 08-12-2021)           »          تأملت والدنيا (الكاتـب : admin - مشاركات : 0 - المشاهدات : 466 - الوقت: 10:54 PM - التاريخ: 08-03-2021)           »          وكن راضيا (الكاتـب : admin - مشاركات : 0 - المشاهدات : 446 - الوقت: 10:54 PM - التاريخ: 08-03-2021)           »          طوبا لمن عاش في هذه الدنيا غريبا (الكاتـب : admin - مشاركات : 0 - المشاهدات : 456 - الوقت: 10:53 PM - التاريخ: 08-03-2021)           »          لا تشكُ للناسِ (الكاتـب : admin - مشاركات : 0 - المشاهدات : 468 - الوقت: 10:52 PM - التاريخ: 08-03-2021)

إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 05-28-2021, 02:13 AM
الصورة الرمزية الادارة كريم
الادارة كريم 
مشرف سابق
 
تاريخ التسجيل: May 2021
الدولة: مصر
المشاركات: 397
معدل تقييم المستوى: 22
الادارة كريم is a splendid one to beholdالادارة كريم is a splendid one to beholdالادارة كريم is a splendid one to beholdالادارة كريم is a splendid one to beholdالادارة كريم is a splendid one to beholdالادارة كريم is a splendid one to beholdالادارة كريم is a splendid one to behold


افتراضي استخدم Visual Studio لإنشاء مكتبة ديناميكية مكتبة ثابتة ، وتحميل

 

استعمالVisual Studioلإنشاء مكتبة ديناميكية
الخطوة الأولى هي إنشاء برنامج وحدة تحكم جديد


الخطوة الثانيةSDLدورة تطوير السلامة وخلق مختارةDLLمشروع فارغ


أضف .h في Explorerمع.cppملف




في.hيمكن كتابة إعلان الوظيفة في الملف:

  • #pragma Once // أمر المترجم مرة واحدة رأس حماية
  • extern "C" / * قم بترجمة هذه الوظيفة في C * / __declspec (dllexport) / * قم بتسمية دالة كدالة تم تصديرها ، أي يجب استدعاء هذه الوظيفة بواسطة برامج أخرى ، أي كواجهة دالة خارجية لـ DLL.
  • */ int Add(int a,int b);
ملف .cpp
  1. #include "testdllh.h"
  2. int Add(int &a, int &b)
  3. {
  4. return a + b;
  5. }
لا يمكن الترجمة مباشرة هنا ، لأن التجميع المباشر سيولد dll ، ولا يمكن تشغيل dll مباشرة ، لذلك نختار هنا إنشاء:




ما سبق يشير إلى أن الجيل ناجح ، ندعو هناdllمحاولة:

تظهر التعليمات البرمجية على النحو التالي:
  • #include "testdllh.h"
  • #include <stdio.h>
  • #include <windows.h>
  • int main(){
  • HINSTANCE h = LoadLibraryA ("ConsoleApplication10.dll")؛ // تحميل مكتبة ديناميكية
  • typedef int (* FunPtr) (int a، int b)؛ // تعريف مؤشر الوظيفة للإشارة إلى الوظيفة في مكتبة Dll الديناميكية
  • if (h == NULL)
  • {
  • FreeLibrary(h);
  • printf("load dll error\n");
  • }
  • else{
  • FunPtr funPtr = (FunPtr) GetProcAddress (h، "Add")؛ // الحصول على عنوان الإزاحة لملف الوظيفة المحدد في المكتبة الديناميكية
  • if (funPtr != NULL)
  • {
  • int int = funPtr (3، 3)؛ // Call call
  • printf("3 + 3 = %d \n", result);
  • }
  • else{
  • printf("error add");
  • }
  • }
  • printf("dd");
  • getchar();
  • }
نتيجة العملية:

دعونا نقدم الوظائف الثلاث المستخدمة أعلاه:
LoadLibraryA、FreeLibraryGetProcAddressالوظيفةWindowsواجهة مقدمة من المستخدم لتحميل وظائف المكتبة الديناميكية
LoadLibraryA
النموذج الأولي للوظيفة:
  1. HMODULE WINAPI LoadLibrary( _In_ LPCTSTR lpFileName);
  2. _In_ LPCTSTR lpFileName: مسار المكتبة الديناميكية ليتم تحميلها
قيمة الإرجاع:
تمت إعادة مقبض الوحدة المرجعية بنجاح
FreeLibrary
النموذج الأولي للوظيفة:
  • WINBASEAPI
  • BOOL
  • WINAPI
  • FreeLibrary(
  • _In_ HMODULE hLibModule
  • );
  • _In_ HMODULE hLibModule ؛ تم إرجاع مقبض وحدة المكتبة الديناميكية بواسطة LoadLibrary
قيمة الإرجاع: صحيحة إذا كانت ناجحة ، وإلا كانت خاطئة
GetProcAddress
النموذج الأولي للوظيفة:
  1. FARPROC GetProcAddress(
  2. HMODULE hModule ، // مقبض الوحدة النمطية DLL
  3. LPCSTR lpProcName // اسم الوظيفة
  4. );
قيمة الإرجاع: إرجاع عنوان العنوان / الإدخال الأول للدالة المحددة في ملف الوحدة النمطية DLL


بالإضافة إلى ذلك ، يمكنك أيضًا استخدام Visual Studio لتضمين مكتبة DLL مباشرةً. أولاً وقبل كل شيء ، عندما نقوم بتجميع مكتبة الارتباط الحيوي (DLL) وإنشاءها ، يوجد بالفعل ملف مكتبة lib:




ليبملف مكتبةcopyإلى مسار مشروعنا ، فيدللقم بالتسجيل حسب بت نظامكcopyإلىSystem32/SysWOW64تحت المحتويات
اقتباس مباشر في خصائص المشروع:

ادارة:


نتيجة العملية:

لاحظ هنا لتقول لماذا دللسوف يولدlibملف؟
Libالذي يحتوي علىdllمعلومات الوصف ، مثل جدول رمز الوظيفة وعنوان الإزاحة ومعلومات أخرى ، بدلاً من الرمز الفعلي ، لذلك نحن فيvsideيحتوي على هذاLibملف،vsقراءة تلقائيا أثناء المترجمlibمعلومات التكوين ، ثم انتقل إلى النظام لتحديد دليل المكتبة الديناميكي للتحميلdllمكتبة!
سيستخدم المترجم ملف lib فقط في وقت الترجمة للحصول على بعض المعلومات في مكتبة dll ، ولن يتم تحميله في البرنامج!


مكتبة ثابتة:


أضف .h و. cpp


ملف .h:
  • #pragma Once // أمر المترجم مرة واحدة رأس حماية
  • extern "C" / * قم بترجمة هذه الوظيفة في C * / __declspec (dllexport) / * قم بتسمية دالة كدالة تم تصديرها ، أي يجب استدعاء هذه الوظيفة بواسطة برامج أخرى ، أي كواجهة دالة خارجية لـ DLL.
  • */ int Add(int a, int b);
ملف .cpp:
  1. #include "libh.h"
  2. int Add(int &a, int &b)
  3. {
  4. return a + b;
  5. }
انشاء:




استخدم تعليق أمر المترجم لتحميل:
  1. #include "libh.h"
  2. #include <stdio.h>
  3. #pragma comment (lib، "ConsoleApplication12.lib") // تحميل مكتبة ثابتة
  4. int main(){
  5. نتيجة int = Add (3، 3)؛ // Call call
  6. printf("3 + 3 = %d \n", result);
  7. printf("dd");
  8. getchar();
  9. }
نتيجة العملية:


الموضوع الأصلي : استخدم Visual Studio لإنشاء مكتبة ديناميكية مكتبة ثابتة ، وتحميل || الكاتب : الادارة كريم || المصدر : منتدى مجمع التطوير

 

رد مع اقتباس
قديم 06-03-2021, 01:44 PM   #2
admin
✯ ادارة المنتدى ✯
 
الصورة الرمزية admin
 
تاريخ التسجيل: Mar 2021
الدولة: مصر
المشاركات: 733
معدل تقييم المستوى: 10
admin is a splendid one to beholdadmin is a splendid one to beholdadmin is a splendid one to beholdadmin is a splendid one to beholdadmin is a splendid one to beholdadmin is a splendid one to behold


افتراضي

شرح وافى وكافى
تسلم على الموضوع الرائع
تحياتي لك

admin غير متواجد حالياً
 
رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
[شرح] استخدم أدوات Microsoft Visual Studio الخاصة لعرض تبعيات المكتبة الديناميكية الادارة كريم برامج Microsoft Visual 0 05-28-2021 02:10 AM
[شرح] كيفية استخدام أداة DumpBin.exe التي يوفرها Microsoft Visual Studio لعرض قسم تصدير DLL الادارة كريم برامج Microsoft Visual 0 05-28-2021 01:54 AM
[استايل styal] ستايلات الكتابه بالنار للفوتوشوب admin التصـامـيم وإبداعــات الأعــضاء 0 05-15-2021 03:43 PM
[استايل styal] ستايل الكتابه بالطباشير للفوتوشوب admin التصـامـيم وإبداعــات الأعــضاء 0 05-15-2021 03:21 PM
[استايل styal] ستايلات واكشنات كتابة النصوص المجسمة 3d admin التصـامـيم وإبداعــات الأعــضاء 0 05-15-2021 02:45 PM

 

موقع ومنتديات مجمع التطوير موقع يختص بالبرمجة والبرامج المساعدة  للتصاميم والأدوات المساعدة ,مع تقديم العون والمساعدة لكل مبرمج من خلال الأقسام المحددة , كما نعرض الأعمال الجاهزة والمفتوحة المصدر. ويهتم أيضا بالتصاميم والجرافيك وبرامجها وعرض التصاميم وملحقات التصاميم والأدوات المساعدة .كما نتمنى التوفيق لنا ولكم مع أجمل تحية مقدمة منا. 

  • الرئــيســية

  • الــمنــتـدى

  • مركز الرفع

  • التسـجـيل

  • قوانين المنتدى

  • التعـلـيمـات

  • الترقيات

check pagerank

 Flag Counter

كلمة الإدارة  منتدى مجمع التطوير غير مسئول عن أي طرح من الأعضاء فتلك الموضوعات تعبر عن رأى صاحبها ومن خلال وضع قوانين وتعليمات المشاركة بالمنتدى نسعى جاهدين لتطبيق تلك التعليمات. والمنتدى أيضا غير مسئول عن أي اتفاق مالي أو تجارى بين الأعضاء وبذلك تعد هذه الصيغة إخلاء مسئولية من جانب إدارة المنتدى وفقنا ووفقكم الله لما فيه الخير
 
الساعة الآن 05:32 AM


Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
جميع الحقوق محفوظة لمجمع التطوير