نمایش نتایج 1 تا 12 از 12

نام تاپیک: ساخت یک Dll آسان

  1. #1

    Thumbs up ساخت یک Dll آسان

    من می خواهم یک Dll بسازم که توش یک تابع باشه این تابع یک عدد بگیره و بعد آن عدد را در 3 ضرب کنه .

    یکی زحمت بکشه و بگه کدش را چه جوری بنویسم ؟

  2. #2
    کاربر دائمی آواتار Touska
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    ایران زمین
    سن
    39
    پست
    1,988
    اینم مثال نه اون چیزی که می خواهی :
    library Persian;

    { Important note about DLL memory management: ShareMem must be the
    first unit in your library's USES clause AND your project's (select
    Project-View Source) USES clause if your DLL exports any procedures or
    functions that pass strings as parameters or function results. This
    applies to all strings passed to and from your DLL--even those that
    are nested in records and classes. ShareMem is the interface unit to
    the BORLNDMM.DLL shared memory manager, which must be deployed along
    with your DLL. To avoid using BORLNDMM.DLL, pass string information
    using PChar or ShortString parameters. }

    uses
    SysUtils,
    Classes,
    DateUtils,
    Utils;

    {$R *.res}

    Function PrintDate: ShortString;
    begin
    Result := datetostr(date);
    End;


    Exports
    PrintDate;

    begin
    end.

  3. #3
    آقای توسکا خیلی ممنون

    من همه ای اون کدهایی که شما نوشتید را استفاده کردم همه مراحل خوب پیش میره حتی تو پروژه ای که هم که از آن Dll استفاده می کنم قشنگ تابع را میشناسه

    اما

    موقع اجرای برنامه این خطا را میدهد

    راستی شما بعد از این که اون کدها را نوشتید دیگه چه کارهایی می کنید به طور مثال کامپایل می کنید یا کارهای دیگه
    عکس های ضمیمه عکس های ضمیمه

  4. #4
    کاربر دائمی آواتار Touska
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    ایران زمین
    سن
    39
    پست
    1,988
    شما چه جوری ازش استفاده کردید کد استفاده رو بنویسید.

  5. #5
    library Project1;

    { Important note about DLL memory management: ShareMem must be the
    first unit in your library's USES clause AND your project's (select
    Project-View Source) USES clause if your DLL exports any procedures or
    functions that pass strings as parameters or function results. This
    applies to all strings passed to and from your DLL--even those that
    are nested in records and classes. ShareMem is the interface unit to
    the BORLNDMM.DLL shared memory manager, which must be deployed along
    with your DLL. To avoid using BORLNDMM.DLL, pass string information
    using PChar or ShortString parameters. }

    uses
    SysUtils,
    Classes;

    {$R *.res}

    Function Test: ShortString;
    begin
    Result := 'Laia' ;
    End;

    Exports
    Test;

    begin
    end.

  6. #6
    آقای توسکا شما بعد از این که کد را نوشتید چی کار می کنید ؟

    از برنامه خارج می شوید .!
    کامپایل می کنید .!

  7. #7
    من نه در کد شما و نه در کد آقای Touska تابعی به اسم PrintNormal نمی بینم. پیغام خطا هم میگه که همچین تابعی در DLL مربوطه وجود نداره

  8. #8
    کاربر دائمی آواتار Touska
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    ایران زمین
    سن
    39
    پست
    1,988
    چالبش همینه !

  9. #9
    آقای Touska شما چگونه تابع را از Dll فراخوانی می کنید ؟

  10. #10
    کاربر دائمی آواتار Touska
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    ایران زمین
    سن
    39
    پست
    1,988
    به این شکل البته بصورت استاتیک :

    Function PrintDate: ShortString;
    External 'persian.dll';


    بعد ازش استفاده می کنم.

  11. #11
    نقل قول نوشته شده توسط Touska
    اینم مثال نه اون چیزی که می خواهی :
    library Persian;

    { Important note about DLL memory management: ShareMem must be the
    first unit in your library's USES clause AND your project's (select
    Project-View Source) USES clause if your DLL exports any procedures or
    functions that pass strings as parameters or function results. This
    applies to all strings passed to and from your DLL--even those that
    are nested in records and classes. ShareMem is the interface unit to
    the BORLNDMM.DLL shared memory manager, which must be deployed along
    with your DLL. To avoid using BORLNDMM.DLL, pass string information
    using PChar or ShortString parameters. }

    uses
    SysUtils,
    Classes,
    DateUtils,
    Utils;

    {$R *.res}

    Function PrintDate: ShortString;
    begin
    Result := datetostr(date);
    End;


    Exports
    PrintDate;

    begin
    end.
    از این روش هم برای خواندن استفاده کردم اما بازم همون خطای با لا را میده
    Function PrintDate: ShortString;
    External 'persian.dll';

    آقای توسکا خیلی ممنون که پیگیر این مسئله شده اید

    میشه پروژه Dll را ذخیره کرده و اینجا آپلود کنید ؟

  12. #12
    کاربر دائمی آواتار Touska
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    ایران زمین
    سن
    39
    پست
    1,988
    اینم مثال :
    فایل های ضمیمه فایل های ضمیمه

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •