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

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




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

نام تاپيک: مشکل در استفاده از توابع api

  1. #1
    پروفشنال Arash_XL7710i_207's Avatar
    تاريخ عضويت
    Aug 2006
    محل سكونت
    Shiraz
    پست ها
    762

    پيش فرض مشکل در استفاده از توابع api

    با سلام خدمت دوستان عزیز برنامه نویس خودم:
    یه چند وقتی هست که موقعی که از تابعی (api) میخوام استفاده کنم ارور Access Violation قبل شروع کار تابع ظاهر میشه؟
    به نظر دوستان مشکل از کجاست؟

  2. #2
    پروفشنال hoax3r's Avatar
    تاريخ عضويت
    Oct 2007
    پست ها
    699

    پيش فرض

    شما باید کدت رو بزاری یا بگی از چه api و چطور استفاده کردی تا بشه راهنمایی کرد
    این اررور موقعی ظاهر میشه که شما به یه آدرس غیر مجاز بخوای دسترسی پیدا کنید

  3. #3
    پروفشنال Arash_XL7710i_207's Avatar
    تاريخ عضويت
    Aug 2006
    محل سكونت
    Shiraz
    پست ها
    762

    پيش فرض

    مثلا موقعی که میخوام از تابع GlobalMemoryStatus() یا GetComputerName استفاده کنم.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  4. #4
    پروفشنال hoax3r's Avatar
    تاريخ عضويت
    Oct 2007
    پست ها
    699

    پيش فرض

    این بخاطر اینه که mem الان یه اشارگر هست که به جایی اشاره نمیکنه برای حلش یک راه اینه که باید حافضه پویا تخصیص کنید
    این کارو با توابعی مثل malloc در C یا new در ++C و ... میشه کرد مثلا با malloc به این شکل میشه
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    البته اگه ساختار رو MEMORYSTATUS در نظر بگیرید میتونید کد رو به این صورت تغییر بدین که دیگه احتیاج به تخصیص حافظه پویا نیست
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    در حالت دوم دسرسی به اعضاء با نقطه هست

  5. #5
    پروفشنال Arash_XL7710i_207's Avatar
    تاريخ عضويت
    Aug 2006
    محل سكونت
    Shiraz
    پست ها
    762

    پيش فرض

    خوب یعنی به نظر شما باید برای توابع api حافظه پویا بزارم؟؟؟؟؟

  6. #6
    پروفشنال hoax3r's Avatar
    تاريخ عضويت
    Oct 2007
    پست ها
    699

    پيش فرض

    نه برای توابع api برای بعضی از پارامترا از نوع رشته یا ساختار و ... که به api داده میشه اگه پارامتر یه اشارگر باشه
    بهتره با یه آدرس معتبر مقدار دهی بشه که این آدرس میتونه گرفتن حافظه پویا باشه یا متناسب به پارامتر یه رشته یا ساختار یا ... معتبر باشه
    اگه این کار انجام نشه در قالب موارد با اون ارروری که گفتین روبرو میشین یا در حالت بدتر اگه کامپایلر یه مقدار اولیه نا مشخص
    به اشارگر بده که درا ین حالت ممکنه روی هر سیستم رفتار متفاوتی داشته باشه

    همونطور که در مثال دوم گفتم لزومی نداره حتما ساختار رو اشارگر در نظر بگیرین که مجبور به تخصیص حافظه باشن
    در مورد همین api خود msdn مثالی داره بد نیست ببینید

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


Thread Information

Users Browsing this Thread

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

User Tag List

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

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