Contacts
صفحه اصلی پورتال | صفحه اصلی تالار | ثبت نام | اعضاء | گروه ها | جستجو | پرسش و پاسخ | فروشگاه الکترونیکی | خرید پستی بازی های کامپیوتری





صفحه اول انجمنها -> برنامه نويسي تخصصي DirectX و اصول برنامه نويسي تحت ويندوز -> نمایش نتایج رندر DirectX در PictureBox ؟
 

ارسال يك موضوع جديد   پاسخ به يك موضوع ديدن موضوع قبلي :: ديدن موضوع بعدي

نمایش نتایج رندر DirectX در PictureBox ؟
نويسنده
پيغام
Unity 3D
در حال رشد
در حال رشد


تاريخ عضويت: 2 شنبه 11 مرداد 1389
تعداد ارسالها: 29


4 شنبه 10 آبان 1391 - 13:59
پاسخ بصورت نقل قول
با عرض سلام به تمامی مدیران محترم و کاربران محترم سایت

زحمتی که بنده برای شما عزیزان دارم این است که لطف کرده و به سوال بنده پاسخ دهید.
پیشاپیش از شما که برای پاسخگویی به سوال بنده زمان میگذارید، تشکر می کنم.
همچنین عذرخواهی بنده را به خاطر طولانی بودن متن پذیرا باشید.

در ابتدا باید توضیحات کوتاهی بدهم، سپس اصل سوال را مطرح خواهم کرد.
البته این توضیحات توهینی به شما عزیزان محسوب نشود، فقط توضیحات را می دهم تا در پاسخگویی شما کمک شود.

بنده در حال طراحی یک نرم افزار هستم که دارای دو بخش است:
(1) یک DLL که با زبان Microsoft Visual C++ 2008 نوشته ام و برای آماده سازی و رندر کردن اشیاء به کار می گیرم. تمام کارهای مرتبط با DirectX توسط این DLL انجام می شود.
(2) برنامه ای که با زبان Microsoft C# 2008 نوشتم که UI این نرم افزار است. این برنامه است که وظیفه استفاده از توابع DLL بالا را دارد.

مشکل بنده این است که بنده نمی توانم نتایج رندر DirectX را در PictureBox ای در برنامه #C نمایش بدهم.
در نسخه جاری نرم افزار، نتایج در پنجره ای جداگانه نمایش داده می شود. ( البته خودم برای تست اجرای درست برنامه، این روش را انتخاب کردم )

و اما سوال:
در سی شارپ هندل یک کامپوننت مانند PictureBox از نوع IntPtr است. ( PictureBox.Handle )
ولی در سی پلاس پلاس، هندلی که به DirectX معرفی می کنیم تا نتایج رندر را در آن نمایش دهد، از نوع HWND و *Void است.
بنده می خواهم هندل PictureBox را برای DirectX به عنوان محل نمایش رندر معرفی کنم.
نحوه تبدیل IntPtr به *Void چگونه است؟

دوباره بنده از شما عزیزان به خاطر طولانی بودن متن عذرخواهی می کنم.
همچنین از این که وقت گرانبهایتان را برای خواندن و پاسخگویی به این سوال در اختیار بنده میگذارید، تشکر می کنم.

روز و روزگار بر تمامی مدیران و کاربران سایت خوش
JHS
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

نويسنده
پيغام
Unity3D
مدیر انجمن
مدیر انجمن


تاريخ عضويت: 2 شنبه 23 آذر 1388
تعداد ارسالها: 1034


4 شنبه 10 آبان 1391 - 18:47
پاسخ بصورت نقل قول
باید Cast کنی دیگه ، البته Allow Unsafe Code رو هم تو تنظیمات پروژه بزن :

كد:
            unsafe
            {
                void* a = (void*)Marshal.AllocHGlobal(10);
                IntPtr b = (IntPtr)a;
            }
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نويسنده
پيغام
Unity 3D
در حال رشد
در حال رشد


تاريخ عضويت: 2 شنبه 11 مرداد 1389
تعداد ارسالها: 29


4 شنبه 10 آبان 1391 - 19:01
پاسخ بصورت نقل قول
با عرض سلام به تمامی مدیران محترم و کاربران محترم سایت

و خصوصا مدیر محترم "Unity3D" گرامی

تشکر بنده را به جهت این پاسخ پذیرا باشید.

اما بنده این روش را می دانستم.

حال چند سوال:
آیا راه دیگری برای تبدیل مستقیم و Safe وجود دارد؟
آیا با فعال سازی UnSafe ، امنیت برنامه به خطر نمی افتد؟
سوال کلی تر، می توانید تاثیرات فعال بودن/نبودن UnSafe بر برنامه ها را توضیح دهید؟

با تشکر مجدد از مدیریت محترم "Unity3D" گرامی

بنده همچنان منتظر نظرات پرارزش شما مدیران محترم و کاربران محترم سایت هستم.

روز و روزگار بر تمامی مدیران و کاربران سایت خوش
JHS
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

نويسنده
پيغام
Unity3D
مدیر انجمن
مدیر انجمن


تاريخ عضويت: 2 شنبه 23 آذر 1388
تعداد ارسالها: 1034


4 شنبه 10 آبان 1391 - 22:11
پاسخ بصورت نقل قول
Unity 3D,

دوست من Unsafe معنیش این نیست که نرم افزارتون ناامن میشه ، معنیش اینه که ممکنه ناامن بشه ( توسط کدهای خود برنامه نویس) ، تو حالت عادی شما دسترسی مستقیم به حافظه رو نداری و Allow Unsafe Code این دسترسی رو در اختیار شما میگذاره ...
و بله تنها راهش هم همینه Idea
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نمايش نامه هاي ارسال شده قبلي:   
ارسال يك موضوع جديد   پاسخ به يك موضوع    صفحه 1 از 1 تمام ساعات و تاريخها بر حسب 3.5+ ساعت گرينويچ مي باشد


 
پرش به:  


شما نمي توانيد در اين انجمن نامه ارسال كنيد.
شما نمي توانيد به موضوعات اين انجمن پاسخ دهيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن ويرايش كنيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن حذف كنيد
شما نمي توانيد در نظر سنجي هاي اين انجمن شركت كنيد


unity3d

بازگردانی به فارسی : علی کسایی @ توسعه مجازی کادوس 2004-2011
Powered by phpBB © 2001, 2011 phpBB Group
| Home | عضويت | ليست اعضا | گروه هاي كاربران | جستجو | راهنماي اين انجمن | Log In |