تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 4 از 4

نام تاپيک: کار با DLL و مشکلات آن

  1. #1
    در آغاز فعالیت
    تاريخ عضويت
    Apr 2018
    پست ها
    3

    پيش فرض کار با DLL و مشکلات آن

    سلام دوستان
    ما دو تا برنامه داریم به نامهای A و B که با ++C نوشته شده و به وسیله یک DLL به هم متصل می باشد ، برنامه A اطلاعات عددی 1.2356 را به DLL ارسال نموده و در آنجا به متغییر x انتقال داده می شود سپس برنامه B دی ال ال را صدا زده و x را می خواند ، مشکل اینجاست وقتی برنامه B اجرا می شود اطلاعات را دریافت نمی کند.
    آیا این راه حل برای ارتباط دو نرم افزار با دی ال ال درست است ؟ آیا کد زیر اشتباه نوشته شده است، ممنون میشم کمکم کنید.




    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  2. #2
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    پروسس های شما با هر بار اجرا این Dll را Load می کنند. این بارگذاری های متفاوت میان دو Application باعث می شود تا حافظه مشترک برای dll وجود نداشته باشد، لذا شما مقادیر تنظیم شده را نمی بینید. برای اینکه بتوانید چنین چیزی بدست آورید باید به لینکر بفهمانید که متغیر x شما را درون حافظه ی Shared قرار دهد. برای این کار می بایست از pragma# استفاده کنید.همچنین SECTION بندی برای لینکر را نیز تنظیم کنید.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    حال با بار بارگذاری dll در پروسس، یک section اشتراک گذاری شده قابل خواندن و نوشتن ایجاد می شود که بین app های load کننده این dll مشترک می شوند.
    به ارتباطات بین برنامه ای در اصطلاح IPC می گویند.
    من این روش IPC را پیشنهاد نمی کنم. چون خیلی اختصاصی کامپایلر و سیستم عامل است در نتیجه انعطاف کمی خواهد داشت. روش socket شاید portable ترین روش برای IPC ها باشد.

    اگر هم به attribute های Section علاقه دارید [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] برایتان مفید است.

    موفق باشید.
    Last edited by Msba; 07-04-2018 at 18:37.

  3. این کاربر از Msba بخاطر این مطلب مفید تشکر کرده است


  4. #3
    در آغاز فعالیت
    تاريخ عضويت
    Apr 2018
    پست ها
    3

    پيش فرض

    خیلی ممنون از کد ارسالی ، مشکل حل شد. یک مشورت هم می خواستم از شما بگیرم :
    ما دو تا نرم افزار داریم که باید در کمترین زمان ( در حد میلی ثانیه و اگر بشه میکرو ثانیه) اطلاعات رو به هم دیگه بفرستند . دو تا روش انتخاب کردم یکی ارتباط با dll و دوم خوندن و نوشتن در حافظه ، می خواستم بدونم کدام یک هدف من رو که ارتباط سریعتر هست بهتر برآورده می کنه ؟ (ارتباط با Dll یا نوشتن در حافظه ) و آیا روش دیگری رو پیشنهاد می کنید.
    کد نوشتن در حافظه :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    Last edited by vahid78ir; 08-04-2018 at 08:53.

  5. #4
    در آغاز فعالیت
    تاريخ عضويت
    Apr 2018
    پست ها
    3

    پيش فرض

    سپاس از شما مشکل حل شد
    Last edited by vahid78ir; 08-04-2018 at 10:24.

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

برچسب های این موضوع

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •