لدي برنامجين منفصلين. كل يقوم بحساباته وإظهاراته. لكن في لحظات معينة يحتاجان لتبادل المعلومات بينهما. كيف؟ أفكاري الأولى أن أعتمد على ملف خارجي على القرص الصلب في مكان ثابت بحيث يكتب أحد البرنامجين عليه والآخر يقرأ وهكذا. لكنه غير آمن على ما أظن. أية اقتراحات؟
اللهم انصر أهلنا في فلسطين وآجرنا أن نكون عوناً لهم
جميل جداً. الطريقتين متشابهتين. جربت الـ Pipes وهي تعمل. لكن المشكلة أنني بحاجة لأن أقول للبرنامج الآخر أنه: هناك معلومات جاهزة لك! إقرأها. ثم يرد الآخر: انتهيت من قراءتها الآن. وهذا ردي... . . وهكذا. كيف يمكنني فعل ذلك؟
اللهم انصر أهلنا في فلسطين وآجرنا أن نكون عوناً لهم
It sounds like a Network application rather than 2 applications sharing memory. Anyway, To make this work you need a lot of synchronization and memory management code.
A suggestion is that you place a block of memory ( a structure for example) that contains commands ( Fixed IDs, Function names...) by Program A and make Program B to read this block of memroy and switch or loop through the commands and execute them. But as I said Synchronization is the key. This is only a suggestion that just popped in my mind, Playing with memory can generate a lot of bugs that takes more time to locate and fix.
good luck☺
من سار على الدرب وصل, من جد وجد...
بس عتبك على اللي بيسمع
يمكنك استخدام الـ Synchronization Objects المتاحة في Windows. هذه الـ objects موجودة بعدة أنواع لتخدم جميع الأذواق (أمزح) أعني الاحتياجات. في حالتك هذه، أقترح أن تنظر إلى الـ Mutex. هو مجرد flag مشترك عبر النظام ككل يمكن لأي برنامجين متفاهمين على اسمه أن يرفعانه أو يخفضانه أو يتم إعلامهما بتغير حالته باستخدام WaitForSingleObject.