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

كيف نكتب برنامج يعمل على نظام ماكنتوش

مغلق
بدأه عربي عربي في 11 يوليو 2007 · 7 رد · 1,102 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أتعلم حاليا سي ++ وأستخدم لهذا الفجوال ستديو، وسؤالي هو: هل يمكن لبرنامج ما قمنا بعمله وانتهى الأمر به على شكل exe أن نحوله إلى صيغة تعمل على أنظمة الماكنتوش؟

هل سنحتاج للسورس لهذا العمل؟

#2

في لينوكس وماكنتوش هناك تركيبه اخرى للملفات التنفيذيه ..

لذلك عليك باستعمل كومبايلير للماكنتوش لكي ينتج لك ملف على الماكنتوش اعتقد بتكون .dmg

لان الكومبايل على وندوز او لينكس او ماكنتوش مختلف.. لكي ينتج لكل نظام ملفه التنفيذي .. لكن بالنهايه الجميع يؤدي المهمه ..

لا اعلم اذا كان هناك بعض الارتباطات في برنامج مع نظام التشغيل ( وندوز ) لذلك عليك تغيرها او تعديلها لتلائم بيئه الماكنتوش ..

تحياتي

#3

ان كان البرنامج الذي كتبته محمول Portable اي انك لم تستخدم دوال و اجرائات لها علاقة بنظام التشغيل يمكنك استخدام Compiler يعمل في Mac، طبعا مع اجراء بعض التعديلات على سورس برنامجك

اما الملف EXE فلا يمكن تشغيلة الا باستعمال Emulator

d4baa0.gif
#4

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

على حد علمي فان الفيجول سي++ والفيجول ستوديو بصورة عامه لا يعمل الا على نظام الوندوز ولذلك فان البرامج المبرمجه عليها لايمكن ان تعمل الا على بيئة الوندوز .

والدليل ان الفيجول سي++ والفيجول بيسك ايضا يعتمد على مكتبات موجوده في الوندوز وعندما تقوم بحزم البرنامج بعد اكماله نهائيا فان برنامج الحزم يقوم بتضمين البرنامج كل مكتبة يتطلبها لان ليست كل المكتبات المستخدمة موجوده في انظمة الوندوز . لان المكتبة قد تكون مبرمجة مع ذلك البرنامج(( اقصد بالمكتبه مكتبات dll )) .... لا اريد ان اخرج عن صلب الموضوع ولكن الذي اريد ايصاله ان مايكروسوفت وهذا معروف عنها لم تجعل برامجها تعمل الا على نظامها ..

تحياتي العطرة وارجوا ان تكون الفكره قد وصلت.

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#5

أنا كنت عملت برنامج لويندوز و نقلته إلى لينوكس بعد أن أجريت بعض التعديلات المتعلقة بالتعامل مع النظام

لكن بالنسبة لمكنتوش -و أنا لا أعرف عنه إلا الإسم- طبعاً سيحتاج إلى تعديلات بلا شك

لكن المكنتوش غير منتشر كإنتشار لينوكس و ويندوز فلا أعتقد أن البرمجة في هذا النظام مربحة

#6

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

mac تستخدم مترجم gcc و ide من أنتاج أبل أسمها x-coder هذا ما أتذكره الأن و لكن يمكن مراجعة موقع أبل نفسه

عمرو عيسي

#7

السلام عليكم

اقتباس
هل يمكن لبرنامج ما قمنا بعمله وانتهى الأمر به على شكل exe أن نحوله إلى صيغة تعمل على أنظمة الماكنتوش؟

لا يمكن ذلك لأن ملف التشغيل المطور في نظام التشغيل ويندوز يعتمد على ذلك النظام ومكتباته. ويمكنك إستعماله في نظام تشغيل آخر إلا إذا عدلت الكود ليتأقلم مع نظام التشغيل. يمكنك إعتماد المثال التالي:

#include "stdafx.h"

		/** Platform detection  **/

		 /* MS Windows flavours */
		 #ifdef WIN32
		 #  ifndef _WIN32_
		 #	define _WIN32_
		 #	define Myenvironement "Windows"
		 #  endif
		 #  ifdef _DEBUG
		 #	define _DEBUG_
		 #  endif
		 #endif // _WIN32_

		 /* Unix flavours  */
		 #ifdef __linux__
		 #define _LINUX_
		 #endif

		 #ifdef __FreeBSD__
		 #define _FREEBSD_
		 #endif

		 #ifdef __CYGWIN__
		 #define _CYGWIN_
	   #define Myenvironement "CYGWIN"
		 #endif  //__linux__

		 #ifdef __APPLE__
		   // Make Carbon the default choice when compiling on a Mac, even when using gcc
		   #if (!defined(_CARBON_) && !defined(_DARWIN_))
			 #define _CARBON_
		   #endif
		 #endif  // __CARBON__

		 #ifdef __MWERKS__
		   #ifdef macintosh
			 #define _CARBON_
			 #define Myenvironement "macintosh"
			 #endif
		#endif //macintosh

		#if defined(_LINUX_) || defined(_FREEBSD_) || defined(_CYGWIN_) || defined(_DARWIN_) 
		 #define _UNIX_
	   #define Myenvironement "Unix"
		 #endif  //_UNIX_

	   void _tmain(int argc, _TCHAR* argv[])
	   { printf(Myenvironement);}

#	define Myenvironement "Windows"

هذه التعليمة ترجع لي معرف نظام التشغيل. بإمكانك أن تظيف لها تعليمات أخرى لتحقيق التطابق بين نظم التشغيل, مثال إستدعاء مكتبات :

#ifdef macintosh
		 #include "MacintoshHearFile.h"
		 #pragma comment(lib, "Macintoshlib.lib")
		 #define __R(x) m_pMyRtts->r##x
	 #else 
		 #include "WindowsHeaderFile.h"
		 #pragma comment(lib,"windowsLibrary.lib")
		 #define __R(x) x
	 #endif

هي فقط أسماء رمزية وعليك بتعديلها عبر كتابة أسماء المكتبات التي تستعملهاMacintoshHearFile, Macintoshlib, windowsLibrary, WindowsHeaderFile

m_pMyRtts هي دالة تقم بتعريفها للتحكم في مخرجاتها حسب نظام التشغيل وأضفتها فقط لأبرز إمكانية ذلك وهو ليس أمر إجباري

#8

عذرا نسيت أن أضيف أني إعتمدت على هذا المرجع

هذا الموضوع مغلق.

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