السلام عليكم
اخواني انا في طور عمل برنامج بالسي بلاس ولكن لدي مشكله
البرنامج يتطلب تشغيله ملف dll
هل من الممكن دمج ملف exe مع ملف dll
لينتج ملف واحد فقط exe
علما باني استعمل الفيجول ستوديو 6
ولكم جزيل الشكر
السلام عليكم
اخواني انا في طور عمل برنامج بالسي بلاس ولكن لدي مشكله
البرنامج يتطلب تشغيله ملف dll
هل من الممكن دمج ملف exe مع ملف dll
لينتج ملف واحد فقط exe
علما باني استعمل الفيجول ستوديو 6
ولكم جزيل الشكر
السلام عليكم و رحمة الله و بركاته
يمكنك إستخدام الدوال:
هذه الدوال متوفرة في المكتبة kernel32.dll و تمكنك من حقن المكتبة داخل ملف التشغيل .exe
بن العيد كتب:السلام عليكم و رحمة الله و بركاتهيمكنك إستخدام الدوال:
هذه الدوال متوفرة في المكتبة kernel32.dll و تمكنك من حقن المكتبة داخل ملف التشغيل .exe
لكن هذه الدوال تستخدم لتحرير الموارد ( Icon / Version / Bitmap / String / Dialog / File / ... etc ) فى الملف
ولكن لن تستطيع بوسطتها تحرير كود
فلو أن الملف exe يستدعى الداله func من الملف dll
فالدوال المذكوره لن تستطيع من حقن هذه الداله داخل exe
أما لو كنت تتحدث عن إدماج الملف dll داخل موارد الملف exe وعند التنفيذ يتم استخراج dll ثم استدعائه
فلن تحتاج الى هذه الدوال - لأنك ستفعل ذلك اثناء design time
تم تعديل هذه المشاركة بواسطة NawalyZuma في 19 فبراير 2009 في 00:07
اقتباسأما لو كنت تتحدث عن إدماج الملف dll داخل موارد الملف exe وعند التنفيذ يتم استخراج dll ثم استدعائهفلنتحتاج الى هذه الدوال - لأنك ستفع ذلك اثناء design time
كنت سأقول ذلك :)
mov eax, dword ptr ds:[0xffdf0308]
jmp dword ptr [eax+0xfc]
السلام عليكم و رحمة الله و بركاته
Embed Binary Files In Programs
Packing Files into Executables using Property Bag
و لكن لماذا تريد دمج المكتبة داخل ملف التشغيل :blink:
اشكركم اخاوني ...انا ارغب ان يتم الدمج بين الملفين بشكل كلي دون الاضرار بعمل الملفين ... وليس استخراج ملف dll
جربت برنامج MolBox ولكن للاسف الملف الناتج لا يعمل بشكل كلي .
الهدف من الدمج اخي تكوين ملف واحد يعمل في اي جهاز دون الحاجه الى الاهتمام بوجود مكتبه في الجهاز الثاني.
السؤال هل هناك برنامج يأخذ exports ملف DLL ثم يقوم بدمج ملفين في ملف تنفيذي واحد ويقوم بإصلاح الـ exports وجميع الاستدعاءات لتكون من داخل الملف التنفيذي وإلى داخل الملف التنفيذي بحيث يمكن الوصول إليه من خلال GetProcAddress ؟
:P
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
يمكن ذلك يدوياً لكن لا اظن انه يوجد برنامج لعمل ذلك ، او انه موجود لكن لم يعلن عنه (استخدام شخصي) .
mov eax, dword ptr ds:[0xffdf0308]
jmp dword ptr [eax+0xfc]
انا مش فاهم المطلوب أوى ، لكن على قد فهمى ، فهمت انه شبيه بـ Static Linking مثلاً ، يعنى تريد ان يعمل الملف exe دون الحاجة الى الملفات الـ dll المساعدة ؟؟ هل هذا صحيح ؟!!
عمر هو يقصد بضم الملفات مع معض .. Packaging
mov eax, dword ptr ds:[0xffdf0308]
jmp dword ptr [eax+0xfc]
Omar Eladel كتب:انا مش فاهم المطلوب أوى ، لكن على قد فهمى ، فهمت انه شبيه بـ Static Linking مثلاً ، يعنى تريد ان يعمل الملف exe دون الحاجة الى الملفات الـ dll المساعدة ؟؟ هل هذا صحيح ؟!!
نعم اخي العزيز ...عندي برنامج exe لا يعمل بدون ملف dll
فالسؤال هل يمكن دمجهما برمجيا
عموما اخواني انا وجدت هذا الموضوع ولكن لم افهمه كثير ارجو من الاخوان التوضيح
http://syedgakbar.wordpress.com/2007/11/07...e-applications/
هذا تقريبا نفس ما قصده الأخ بن العيد وهو وضع الملف في الـresources واستخراجه اثناء التشغيل .
كثير من البرامج تفعل هذا .
mov eax, dword ptr ds:[0xffdf0308]
jmp dword ptr [eax+0xfc]
بن العيد كتب:السلام عليكــم ورحمـة الله وبركاتــة ،،لا تصعب الأمور على نفسك بدون أي فائدة، بما أن لديك شفرة المشروعين، و هما بلغة و احدة. قم بدمجهما في مشروع واحد، أي يكون لك في النهاية ملف exe فقط
أما إذا كنت مصر ( أصر يصر إلحاحا :) ) على إستخدام ملفين مستقلين فينبغي إنشاء setup
اهلين اخي
غير ممكن ان ادمج الملفين بالسورس لان الاخر يجب ان يكون ملف dll وليس ملف exe
عموما انا حليت المشكله باسخراج الملف الاخر من الرسورس عند الضغط على الاول يتم انشاءه
فالرسورس ليست فقط للايكون او الصور بل اي ملف لانه يترمجه للغه الاسمبلي ويتم استدعاءه من خلال FindResource
وثم صنعه CreateFile
وفي الاخير كتابته في نفس المجلد
WriteFile
ولكم جزيل الشكر
MoleBox أو Fusion كانا سيقومان تقريباً بنفس العمل بدون الحاجة لتنفيذ هذا بشكل برمجي.
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
Xacker كتب:MoleBox أو Fusion كانا سيقومان تقريباً بنفس العمل بدون الحاجة لتنفيذ هذا بشكل برمجي.
اخي العزيز
جربت برنامج MoleBox ولكن لم يعمل الملف بالشكل الاعتيادي ..اتوقع لا يعمل لكل المكتبات
ام البرنامج الاخر لم اجربه ...ممكن وصله البرنامج ؟
السلام عليكــم ورحمـة الله وبركاتــة ،،
اقتباساهلين اخيغير ممكن ان ادمج الملفين بالسورس لان الاخر يجب ان يكون ملف dll وليس ملف exe
عموما انا حليت المشكله باسخراج الملف الاخر من الرسورس عند الضغط على الاول يتم انشاءه
فالرسورس ليست فقط للايكون او الصور بل اي ملف لانه يترمجه للغه الاسمبلي ويتم استدعاءه من خلال FindResource
وثم صنعه CreateFile
وفي الاخير كتابته في نفس المجلد
WriteFile
ولكم جزيل الشكر
لا أخفي عليك أني لم أفهم شيء من ردك و لكني أشعر أن المشكلة قد حلت :wacko:
لم استخدم MoleBox من زمن طويل لكن أود أن أذكرك أنه يجب الانتباه إلى أن استخدام خصائص كثيرة لبرنامج قد تؤدي إلى نتائج غير المرغوب بها.
بخصوص برنامج Fusion انظر نتائج البحث هذه
http://www.google.com/custom?q=fusion+%D8%...x0WMw8&sa=2
---
أخي ابن العيد الأخ يتكلم عن قراءة الـ resource كامل الكتلة بعد معرفة الطول (مثلاً) ثم كتابتها على القرص بعد إنشاء ملف مناسب والكتابة فيه وإغلاقه.
تم تعديل هذه المشاركة بواسطة Xacker في 20 فبراير 2009 في 22:56
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
أسف على التدخل الخاطئ ، غلطة مطبعية :wub: :wacko: :unsure:
بسم الله الرحمن الرحيم
السلام أول الكلام
كنت مارا بالشبكة وصادفت موضوعك أخي
فهمت منه القليل
وأردت أن أطرح الفكرة أخي. عسى أن يكون المقصود
عملت شرح فيديو وأرفقته لك
كود فك الضغط
www.arabteam2000-forum.com]
التحميل بالمرفقات
تم تعديل هذه المشاركة بواسطة waraven في 28 أكتوبر 2010 في 04:56