سؤال

قد يكون سؤالًا غبيًا ، لكن كل محاولاتي إلى Google فشلت. والسؤال هو: كيف يمكنك تطوير تطبيقات Windows التي لا تحتاج إلى إعادة تثبيت مسبقًا؟ أرغب في إنشاء تطبيقات تعمل أيضًا تحت الإصدارات القديمة من Windows والتي لا تملك .NET Framework أو شيء مشابه.

شكرا لك يا إيوولف

هل كانت مفيدة؟

المحلول

أولاً ، البرنامج بلغة أصلية ، مثل C ++ ، لا CLR.

ثانياً ، قم بتعطيل البيان وتجنب ربط DLLs الخارجية (مثل STDC أو MFC).

نصائح أخرى

ماذا تقصد بالإصدارات القديمة من Windows؟
يعد .NET Framework جزءًا من Windows منذ Windows 2003 و .NET 1.1.
لذلك إذا كنت تستهدف إصدارات Windows أحدث من Windows 2003 ، فيمكنك التأكد من توفر .NET.

هناك أيضًا حلول ، أتمتة الارتباط/التغليف من .NET Products ، بحيث لا تحتاج إلى شحن أي إعادة توزيع وما إلى ذلك.

تحديث:
لقد اكتشفت ذلك للتو كثرة الوحيدات يسمح لك بربط وقت التشغيل بالكامل في قابلة للتنفيذ.
يسمون هذه الميزة حزمة.
اقرأ المزيد عن ذلك هنا.

استخدم Delphi - على الرغم من أن الإصدارات الأحدث من IDE تحتوي على بعض الأخطاء الفردية ، إلا أنه من السهل إنشاء تطبيقات Windows الأصلية التي لا تحتاج إلى إعادة توزيعها. أسهل بكثير للاستخدام من C ++/Win32.

يحرر: كما أشار Ewolf إلى أنه لا يحتاج إلى .NET ، على الرغم من السؤال الأصلي الموسومة باسم .NET.

باختصار ، قد لا يكون لبعض الآلات القديمة مثل Win95/98/2000 مثبتة وقت التشغيل. منذ أن حددت .NET ، أفترض أنك ترغب في إنشاء تطبيق باستخدام .NET ، فهناك كبير ، لكن عليك أن يتم تثبيت وقت التشغيل .NET مسبقًا ، يمكنك تنفيذ تطبيق .NET. يمكنك بسهولة الالتفاف على ذلك بطريقتين:

  • قم بتثبيت وقت التشغيل .NET يدويًا أو
  • استخدم برنامج نصي للتثبيت المخصص يمكنه اكتشاف ما إذا كان .NET Runtime مثبتًا أم لا ، لتثبيت .NET Runtime Rediactible.

إذا كنت تتحدث عن تطبيق أصلي مثل C/C ++ ، فإن أفضل طريق يجب اتباعه (لتجنب التبعيات وتقليل عدد DLL المطلوبة) هو تطويره في WinAPI32 الخام ، باستخدام DLL القياسي فقط الذي يتمتع به الكثير من آلات Windows سيكون لديك ، commctrl.dll ، user32.dll ، advapi.dll على سبيل المثال ولكن قليل. ستكون النتيجة النهائية أصغر قابلة للتنفيذ. بالطبع ، يمكنك تجميع DLL الأخرى عن طريق ربط DLL معًا لتشكيل واحد كبير قابلة للتنفيذ.

أنصحك باستخدام WTL, ، وهو إطار C ++ خفيف الوزن. إنها خطوة واحدة فقط فوق واجهة برمجة تطبيقات Win32 حقًا ، بحيث تحصل على exes صغيرة مع بعض التبعيات. يتطلب WTL إطار عمل ATL الذي يمكنك ربطه بشكل ثابت ، مما يعني أنك تحتاج فقط إلى شحن EXE الخاص بك.

إطار آخر يستحق النظر إليه كيو تي. ومع ذلك ، فإن هذا يتطلب منك شحن بعض DLLs مع تطبيقك. QT هو إطار رائع وأعتقد أنك ستجدها أكثر إنتاجية من WTL (اعتمادًا على احتياجات التطبيق الخاصة بك بالطبع).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top