bsng110
شنبه 29 دی 1386, 08:26 صبح
به نام یگانه هستی بخش جهان
سلام بر دوستان و بزرگواران ارجمند
آقا یک سوال داشتم. بنده کمی تا حدی(غبار آلود) برنامه نویسی بلدم اما حالا می خوام با OpenGL کار کنم. ظاهراً از آن فقط در پروژه های MFC می توان استفاده کرد. از دوستان تقاضا مندم که چنانچه راه دیگری برای نوشتن برنامه های OpenGL وجود دارد، به بنده معرفی کنند و کمی نیز توضیح دهند اما چنانچه راه دیگری وجود ندارد، خواهشاً طریقه برنامه نویسی پروژه های MFC را یاد بدهند. بنده مشاهده کردم که به هنگام ساخت یک پروژه با نام X ، یک فایل Mainfrm.cpp (به همراه فایلی با همین نام و پسوند h.)، یک فایل با نام X.cpp (و h. آن)، یک فایل با نام XDoc.cpp(و h. آن)، یک فایل با نام XView.cpp(و h. آن) و یک فایل هم با نام stdafx.cpp (و h. آن) تولید می شود. از قبل نیز این فایل ها با کد هایی پر شده اند. یک کار مسخره ای که در این پروژه ها دیدم ظاهرا این طور است که در یک قسمت (کجا هنوز نمی دانم) یک کدی می نویسند و این کد را در یک حلقه بینهایت می گذارند و تا زمانی که کاربر پنجره برنامه MFC را نبسته است، این کد دائماً اجرا می شود(به نظر من خیلی این کار مسخره است، می توانستند مثل برنامه های معمولی یک کاری بکنند که هنگامی که برنامه اجرا می شود، منتظر یک رویداد باشد و چنانچه رویدادی رخ داد به آن پاسخ دهد نه اینکه دائم یک قطعه کد را اجرا کند تا بالاخره رویدادی رخ دهد). خلاصه شاید همه این حرف هایی که گفتم اشتباه باشد و این به دلیل نداشتن تجربه است. اما نکته دیگری که نمی دانم این است که کجا و در کدام یک از توابع باید چه کدی بنویسیم. در حقیقت قصد بنده ایجاد یک پرژوه است که در آن با استفاده از OpenGL چند پیکسل را روشن و خاموش کرده و اطلاعات آنها را بدست آورده و چند تابع ساده از OpenGL را اجرا کنم. جالب است که حتی برای نوشتن برنامه های OpenGL نیز راه های مختلفی دیدم که با کمک دوستان در قسمت های دیگر مشاهده کردم. مثلاً یک دیوانه ای جهت استفاده از OpenGL2 نشتسه بود و بسیاری از توابع فایل های سرآمد Windows.h و ... را پیاده سازی کرده بود تا بعد بتواند در آن از OpenGL2 استفاده کند که بنده فعلاً توانایی و فرصت چنین کاری را نداشته و می خواهم ظرف یکی دو روز برنامه ام را بنویسم. حتی دیدم در #C نیز از OpenGL استفاده کرده اند و توابع گرافیکی آن را به کار برده اند(جالب است که در آنجا نیز یک تابع اصلی وجود داشت که به تعداد خدا بار اجرا می شد و تا زمانی که ما برنامه را بندیم، متوقف نمی شد) اما فعلا نمی خواهم از #C استفاده کنم و به دلایلی نیاز به نوشتن برنامه CPP دارم. نکته آخر اینکه در مورد ردیابی یا Debug یا همان Trace این برنامه ها نیز یک توضیح مختصر بدهید ممنون می شوم. در هنگام ردیابی این برنامه ها مشاهده کردم که هر خطی از برنامه که اجرا می شود، نمی توان پنجره برنامه را مشاهده کرد و دید که چه چیزی ترسیم شده است. خوب دیگر ردیابی برنامه به چه دردی می خورد. یعنی فقط مشاهده چند عدد درون متغییر ها کافیست. بابا حرفه ای؟! ما که تا نبینیم کجا چی رسم می شه نمی توانیم کد خود را اصلاح کنیم.
در پایان از دوستانی که کمکم خواهند کرد، پیشاپیش تشکر می کنم و از این که وقت گذاشتید و این متن را خواندید نیز سپاسگزارم.
در پناه حق
یا علی
سلام بر دوستان و بزرگواران ارجمند
آقا یک سوال داشتم. بنده کمی تا حدی(غبار آلود) برنامه نویسی بلدم اما حالا می خوام با OpenGL کار کنم. ظاهراً از آن فقط در پروژه های MFC می توان استفاده کرد. از دوستان تقاضا مندم که چنانچه راه دیگری برای نوشتن برنامه های OpenGL وجود دارد، به بنده معرفی کنند و کمی نیز توضیح دهند اما چنانچه راه دیگری وجود ندارد، خواهشاً طریقه برنامه نویسی پروژه های MFC را یاد بدهند. بنده مشاهده کردم که به هنگام ساخت یک پروژه با نام X ، یک فایل Mainfrm.cpp (به همراه فایلی با همین نام و پسوند h.)، یک فایل با نام X.cpp (و h. آن)، یک فایل با نام XDoc.cpp(و h. آن)، یک فایل با نام XView.cpp(و h. آن) و یک فایل هم با نام stdafx.cpp (و h. آن) تولید می شود. از قبل نیز این فایل ها با کد هایی پر شده اند. یک کار مسخره ای که در این پروژه ها دیدم ظاهرا این طور است که در یک قسمت (کجا هنوز نمی دانم) یک کدی می نویسند و این کد را در یک حلقه بینهایت می گذارند و تا زمانی که کاربر پنجره برنامه MFC را نبسته است، این کد دائماً اجرا می شود(به نظر من خیلی این کار مسخره است، می توانستند مثل برنامه های معمولی یک کاری بکنند که هنگامی که برنامه اجرا می شود، منتظر یک رویداد باشد و چنانچه رویدادی رخ داد به آن پاسخ دهد نه اینکه دائم یک قطعه کد را اجرا کند تا بالاخره رویدادی رخ دهد). خلاصه شاید همه این حرف هایی که گفتم اشتباه باشد و این به دلیل نداشتن تجربه است. اما نکته دیگری که نمی دانم این است که کجا و در کدام یک از توابع باید چه کدی بنویسیم. در حقیقت قصد بنده ایجاد یک پرژوه است که در آن با استفاده از OpenGL چند پیکسل را روشن و خاموش کرده و اطلاعات آنها را بدست آورده و چند تابع ساده از OpenGL را اجرا کنم. جالب است که حتی برای نوشتن برنامه های OpenGL نیز راه های مختلفی دیدم که با کمک دوستان در قسمت های دیگر مشاهده کردم. مثلاً یک دیوانه ای جهت استفاده از OpenGL2 نشتسه بود و بسیاری از توابع فایل های سرآمد Windows.h و ... را پیاده سازی کرده بود تا بعد بتواند در آن از OpenGL2 استفاده کند که بنده فعلاً توانایی و فرصت چنین کاری را نداشته و می خواهم ظرف یکی دو روز برنامه ام را بنویسم. حتی دیدم در #C نیز از OpenGL استفاده کرده اند و توابع گرافیکی آن را به کار برده اند(جالب است که در آنجا نیز یک تابع اصلی وجود داشت که به تعداد خدا بار اجرا می شد و تا زمانی که ما برنامه را بندیم، متوقف نمی شد) اما فعلا نمی خواهم از #C استفاده کنم و به دلایلی نیاز به نوشتن برنامه CPP دارم. نکته آخر اینکه در مورد ردیابی یا Debug یا همان Trace این برنامه ها نیز یک توضیح مختصر بدهید ممنون می شوم. در هنگام ردیابی این برنامه ها مشاهده کردم که هر خطی از برنامه که اجرا می شود، نمی توان پنجره برنامه را مشاهده کرد و دید که چه چیزی ترسیم شده است. خوب دیگر ردیابی برنامه به چه دردی می خورد. یعنی فقط مشاهده چند عدد درون متغییر ها کافیست. بابا حرفه ای؟! ما که تا نبینیم کجا چی رسم می شه نمی توانیم کد خود را اصلاح کنیم.
در پایان از دوستانی که کمکم خواهند کرد، پیشاپیش تشکر می کنم و از این که وقت گذاشتید و این متن را خواندید نیز سپاسگزارم.
در پناه حق
یا علی