الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن عمل برنامج يشتغل بدون تسطيب

بدأه haq في 1 يوليو 2008 · 11 رد · 2,021 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لدي سؤال لم أجد له اجابة عند كثير من الناس فأرجو أن أجده هنا

أريد عمل برنامج لا يحتاج لعمل setup له لكي يشتغل

بمعنى برنامج بمجرد الضغط عليه يشتغل

مثلا برنامج process explorer يشتغل بمجرد الضغط عليه ولا يحتاج لـ setup ولا أي ملفات مرافقة

ستقولون استخدم api ولكن api تأخذ الكثير من الوقت في تصميم واجهة البرنامج ألا يوجد طريقة visual للتصميم

والـ mfc يجب تضمين مكتبات الـ mfc مع البرنامج و الدوت نت يجب تضمين framework مع البرنامج

فهل يوجد بيئة عمل توفر لي تصميم الواجهة بطريقة visual بحيث يكون الكود الناتج عنها هو كود api

فالبرنامج المذكور في الاعلى مكتوب كله بالـ api ولكن هل صممت الواجهة عن طريق الكود

أرجو أن أجد الإجابة هنا

والسلام عليكم ورحمة الله وبركاته

#2

وعليكم السلام .

يجب عليك الاختيار :

1- استخدام مكتبات لا تحتاج ملفات خارجية : مثل API و VCL التابعة لـC++ Builder ووو .

2- استخدام مكتبات تحتاج ملفات خارجية + دمج الملفات بملف واحد : مثل MFC تتطلب ملفات خارجية لكن يمكنك دمج جميع الملفات بملفا واحد عن طريق أحد البرامج .

جرّب هذا :

MoleBox Pro 2.6.5

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#3

يجب عمل ما يسمى ب

Static Linking

و هي عملية ربط البرنامج بالمكتبات التي يستخدمها بحيث تقوم هذه العملية بتضمين هذه المكتبات في ملف ال exe و بالتالي لن يحتاج هذا الملف عند تشغيلة الى اية ملفات خارجية. طبعا التضحية هنا في حجم البرنامج لكن لم تكون الزيادة اكثر من 500 او 600 كيلو بايت إعتمادا على التجربات التي قمت بها في ال MFC و VCL وو ممكن تختلف حسب البرنامج الذي تقوم بعمله و حسب المكتبات التي تستخدمها.

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#4

السلام عليكم

شكرا جزيلا اخواني الكرام على الرد السريع

بالنسبة للبرنامج يا أخي gaming فيه فايروس ولم أستطع تشغيله فهل يوجد له بديل

أخ راكان كيف تتم هذه العملية static linking هل هي عن طريق برنامج مثل ما وضح الأخ gaming أم يوجد طريقة أخرى

وهل هي مطبقة على جميع لغات البرمجة ؟

ما هي ملفات mfc الخارجية الواجب دمجها مع البرنامج ؟

سامحوني على كثرة الأسئلة ولكن الموضوع مهم بالنسبة لي

وشكرا جزيلا لكما مرة أخرى

والسلام عليكم

#5

ليس فايروس يا أخي ... المكافح يعتبر تصرفها مشبوه لذلك يطلق انذاراته .

للتأكد ما هي الرسالة التي يظهرها لك ؟؟

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#6

ال Static Linking يتم من خلال البرنامج ال Linker الموجود مع الكومبايلر. الطريقة تعتمد على بيئة التطوير. هل تستخدم VC++6؟

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#7

السلام عليكم

أخي gaming أرفقت لك صورة الانتيفيروس اللي عندي يوضح ان البرنامج فيه فيروس

أخي راكان نعم استخدم ++vc

post-59539-1214988958_thumb.gif

#8

من أكتر البرامج اللى معمولة كده و impressive بجد هو ال utorrent برنامج به إمكانيات رهيييييييبة و حجمه 130K تقريبا!!!! و زى ما قال الأخ راكان ال static linking هو السبيل بالنسبة لكل المكتبات اللى حتستخدمها سواء كانت MFC أو C/C++ Runtime.

#9

بشكل عام ...

التسطيب أهميته هو توزيع ملفات البرنامج في أماكنها المطلوبة و البرنامج يحتاج إلى ملفات آخرى غير الملف التنفيذي ... هذه الملفات يكون فيها الصور أو ملفات قواعد البيانات أو غير ذلك ..

فالتسطيب يوزع الملفات في أماكنها التي يعرفها البرنامج حتى يصل إليها ...

يمكن الإستغناء عن إنشاء ملف تسطيب عن طريق إما أن يكون البرنامج قائم بذاته فلا يحتاج إلى ملفات خارجة عنه ... فيكون ملف exe فقط أو ملف linux binary فقط لا يحتاج إلى شئ آخر ... و طبعاً مستحيل أن يكون هناك برنامج جيد لا يحتاج إلى ملفات صور أو قواعد بيانات أو ملفات يحفظ فيها بيانات المستخدم أو غير ذلك ... الطريقة الأخرى هي أن نجعل ملفات برنامج بجانب الملف التنفيذي ... فيكون مثلاً عندنا مجلد ... فيه MyProg.exe أو MyProg.sh (حسب النظام) و يكون في نفس المجلد على سبيل المثال مجلد إسمه MyFiles فيه كل ما يحتاج البرنامج من ملفات و نكتب المسار في البرنامج كـ MyFiles/file1.mdb مثلاً ... و حتى لو كانت تلك الملفات ملفات ocx مثلاً .. يمكن أن توضع في المجلد الذي بجانب الملف التنفيذي

#10

تفضل اخي هذا الموضوع ان شاء الله يفيدك

/index.php?showtopic=137916

تحياتي . .

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#11

شكرا اخواني

كما توقعت لم يخب ظني بكم

جميعكم يتكلم عن عمل static linking ولكن كيف يتم عمله

أخي time1 شكرا على الوصلة الرائعة وبالفعل استفدت الكثير منها ولكن لم يذكر كيف يمكن عملها على ++ visual c

#12

للرفع ..

مواضيع مشابهة