رفتن به مطلب
مرجع رسمی سی‌پلاس‌پلاس ایران
  • 0
kambiz behnia

DLL و اجرای برنامه


سوال

با سلام

 من DLLای دارم که با یک برنامه Win32 داده هایی را ردو بدل می کند لذا هنگام load شدن چک میکند تا اگر آن APPWin32 در حال اجرا نباشد آنرا از طریق دستور زیر اجرا کند.

std::string cmd = "start APPWin32.exe";
system (cmd.c_str());

حال اگر برنامه APPWin32 بطور جداگانه اجرا شود. هر چند بار که آن DLL برای اجرا load شوند امکان مشکلی پیش مشاهده نمی شود. حتی اتمام کار آنها.

حال فرض کنیم APWin32 در حال اجرا نباشد. وقتی DLL اول load میشود چون APPWin32 در حال اجرا نیست آنرا با روش گفته شده در با لا اجرا میکند و ادامه کار ...

در ادامه وقتی DLL های بعدی load می شوند چون از قبل AppWin32 در حال اجرا بوده اقدام به اجرای آن نمیکنند و ادامه کار صورت میگیرد.

وقتی dllهای دوم به بعد کارشان خاتمه پیدا میکند و از حافظه خارج میشوند مشکلی در ادامه حتی load شدن dllهای جدید نمیشود.

حال اگر dll اول کارش خاتمه یابد و از حافظه خارج شود. دیگر dll ها نمیتوانند کارشان را به دستی انجام دهند حتی صفحه ui آنها به اصطلاح frezz میکنند و حتی اجازه Load شدن به Dll جدید داده نشده و آن هم Frezz می شود.

 برنامه را با VS2017 نوشته ام و روی Windows 10 مشکلی نیست ولی اگر آنرا روی Windows XP اجرا کنیم این مشکل مشاهده می شود "در VS2017 نوع SDK را نسخه 7.0 و Platform Toolset را   Windows XP (v141_xp) تنظیم کرده ام ".

بنظر شما مشکل چیست؟

لازم به ذکر است در حالتی که سیستم frezz شده آن APPWin32  را از حافظه خارج کنم برنامه ها از حالت frezz خارج می شوند!

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

1 پاسخ به این سوال تا کنون داده شده است

پست های پیشنهاد شده

  • 0

از CreateProcess  برای اجرای برنامه استفاده کردم. و دیگر مشکلی ایجاد نشد. 

به نظر دوستان اجرای برنامه دوم از طریق کفته شده موجب وابسته شدن دو برنامه خواهد شد یا یامشکل جای دیگری است و ممکن است با استفاده از CreateProcess هم پیش بیاید.

متشکرم.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو ملحق شوید

شما همین الآن می‌توانید مطلبی را ارسال و بعداً ثبت‌نام کنید. اگر حساب کاربری دارید، و با حساب کاربری خود مطلب ارسال کنید.
نکته: مطلب شما قبل از انتشار نیاز به بازبینی توسط میانجی‌گر‌ها دارد.

مهمان
پاسخ به این سوال ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از ۷۵ اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


  • کاربران آنلاین در این صفحه   0 کاربر

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
×
  • جدید...