ایجاد DLL، ساده ترین مثال – سایر – 7 ژوئیه 2023

سلام! ابتدا برای این کار به استودیو ویژوال نیاز دارید. آن را نصب کنید، آن را راه اندازی کنید. زبان برنامه نویسی را انتخاب کنید سیستم عامل را انتخاب کنید کتابخانه را انتخاب کنید کتابخانه پیوند پویا را انتخاب کنید، ظاهر می شود روی Next کلیک کنید اسمش را بگذار روی ایجاد کلیک کنید منتظر

کد خبر : 371634
تاریخ انتشار : جمعه ۱۶ تیر ۱۴۰۲ - ۱۴:۱۶
ایجاد DLL، ساده ترین مثال – سایر – 7 ژوئیه 2023


سلام!

ابتدا برای این کار به استودیو ویژوال نیاز دارید.

آن را نصب کنید، آن را راه اندازی کنید.

  1. زبان برنامه نویسی را انتخاب کنید
  2. سیستم عامل را انتخاب کنید
  3. کتابخانه را انتخاب کنید
  4. کتابخانه پیوند پویا را انتخاب کنید، ظاهر می شود

روی Next کلیک کنید


اسمش را بگذار

روی ایجاد کلیک کنید

منتظر بمانید تا کامپیوتر کند پروژه را ایجاد کند


این اولین چیزی است که ممکن است ببینید، کاوشگر می تواند در سمت راست تنظیمات شما باشد.

با نمای dllMain.cpp باز می شود:

حالا اگر باتجربه‌تر هستید، من را تصحیح کنید، اما هر فایل cpp. (چون ما c++ را انتخاب کرده‌ایم) در داخل پروژه می‌تواند قابل دسترسی باشد.

در DLL

برای این یکی بیایید همه چیز را در یک فایل بسته بندی کنیم زیرا در برنامه نویسی مشکل داریم. 😊


بنابراین بیایید یک فایل cpp جدید به نام “mySimpleDLL.cpp” ایجاد کنیم، می توانید نام آن را هر چه می خواهید بگذارید، نگران نباشید.

  1. در solutions explorerTab روی نام پروژه کلیک راست کنید
  2. به آیتم منو “افزودن” بروید
  3. به آیتم منو “مورد جدید” بروید
  4. از پنجره بازشو “فایل C++” را انتخاب کنید، اگر نتوانستید آن را ببینید، روی “نمای تفصیلی” پایین سمت چپ کلیک کنید.
  5. فایل خود را نام ببرید
  6. “افزودن” را بزنید


موارد زیر را در بالای فایل cpp جدید خود اضافه کنید:

  1. نام آن را + _EXPORTS بگذارید
  2. نام آن را +_API بگذارید

آیا این مهم است (قرارداد نامگذاری)؟ نمیدونم یکی باتجربه تر توضیح بده

این هم فرم کد:

#pragma once

#include "pch.h" 
#include <utility>
#include <limits.h>

#ifdef MYSIMPLEDLL_EXPORTS
#define MYSIMPLEDLL_API __declspec(dllexport)
#else
#define MYSIMPLEDLL_API __declspec(dllimport)
#endif


عالی، حالا بیایید یک تابع را در معرض نمایش بگذاریم!

  1. خارجی “C”
  2. نام api همانطور که تعریف شده است
  3. نوع بازگشت
  4. نام تابع
  5. پارامترهای تابع

در کد، a+b ساده در بازگشت:

extern "C" MYSIMPLEDLL_API int hard_math(int a, int b) {
        return(a+b);
}

عالی است، اما آیا کار می کند؟


در برگه کامپایل در هدر:

  1. روی «اشکال‌زدایی» کلیک کنید (اگر می‌گوید انتشار این مرحله را رد کنید)
  2. “آزادی” را انتخاب کنید

منتظر بمانید تا کامپیوتر سریع شما آماده شود


در کنار آن

  1. اگر DLL برای MT4 است، x86 را انتخاب کنید
  2. اگر DLL برای MT5 است، x64 را انتخاب کنید


  1. روی “ساخت” در منوی بالا کلیک کنید
  2. روی “ساخت راه حل” کلیک کنید

اگر با موفقیت کامپایل شود، این را در کنسول خواهید دید


حالا خوب، بیایید فایل (dll) را پیدا کنیم

  1. در زیر solution explorer روی نام پروژه کلیک راست کنید
  2. “باز کردن پوشه در فایل اکسپلورر” را انتخاب کنید


کاوشگر فایل شما را به پوشه ای به شکل زیر می فرستد:


یک سطح به بالا بروید، باید در پوشه ای باشید که با نشانگر صورتی مشخص شده است

  1. در پوشه “Release” حرکت کنید
  2. فایل dll شما برای x86 (32 بیت) موجود است


آن را کپی کرده و به پوشه مشاور متخصص خود منتقل کنید تا آن را آزمایش کنید.

برای اولین آزمایش یک پوشه در متخصصان به نام mySimpleDLL ایجاد کنید و dll mySimpleDLL.dll را در آن پوشه قرار دهید.

یک فایل test1.mq4 در ویرایشگر ایجاد کنید، باید شبیه به این باشد

در test1.mq4 این را به هدر اضافه می کنیم تا تابع را از dll وارد کنیم:

#import "mySimpleDLL.dll" 
int hard_math(int a,int b);
#import

ببینیم کار نمیکنه

این کد منبع است:

#property version   "1.00"
#property strict
#import "mySimpleDLL.dll" 
int hard_math(int a,int b);
#import
int OnInit()
  {
  int result=hard_math(3,5);
  Print("DLL says "+IntegerToString(result));
  return(INIT_SUCCEEDED);
  }

void OnDeinit(const int reason)
  {
  }

void OnTick()
  {
  }

آن را کامپایل کنید و هنگام پیوست کردن به نمودار مطمئن شوید که در EA بررسی شده است:

همچنین :

  1. به Tools بروید
  2. به گزینه ها بروید
  3. به مشاوران متخصص مراجعه کنید
  4. اطمینان حاصل کنید که مجوز واردات dll بررسی شده است

همین است، وقت آن است که آن را امتحان کنید.

انجام می دهد . عالی



لینک منبع : هوشمند نیوز

آموزش مجازی مدیریت عالی حرفه ای کسب و کار Post DBA
+ مدرک معتبر قابل ترجمه رسمی با مهر دادگستری و وزارت امور خارجه
آموزش مجازی مدیریت عالی و حرفه ای کسب و کار DBA
+ مدرک معتبر قابل ترجمه رسمی با مهر دادگستری و وزارت امور خارجه
آموزش مجازی مدیریت کسب و کار MBA
+ مدرک معتبر قابل ترجمه رسمی با مهر دادگستری و وزارت امور خارجه
ای کافی شاپ
مدیریت حرفه ای کافی شاپ
خبره
حقوقدان خبره
و حرفه ای
سرآشپز حرفه ای
آموزش مجازی تعمیرات موبایل
آموزش مجازی ICDL مهارت های رایانه کار درجه یک و دو
آموزش مجازی کارشناس معاملات املاک_ مشاور املاک

برچسب ها : ، ، ، ، ، ،

ارسال نظر شما
مجموع نظرات : 0 در انتظار بررسی : 0 انتشار یافته : ۰
  • نظرات ارسال شده توسط شما، پس از تایید توسط مدیران سایت منتشر خواهد شد.
  • نظراتی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • نظراتی که به غیر از زبان فارسی یا غیر مرتبط با خبر باشد منتشر نخواهد شد.