ورود

View Full Version : ++casting in vc



kiuhnmgtrdcv
سه شنبه 08 اردیبهشت 1388, 20:13 عصر
سلام تا انجایی که من یادم میاد تو c++ برای cast کردن به این سبک عمل میکردیم


float x;
int y;
y=(int)x;
من یه windows form app تو vc++ ساختم حالا میخوام محتویات یه textBox1 تو منغیر f بریزم


float a,t;
t=float( textBox1 -> Text->ToString() ) ;
ولی این err میده


error C2440: '<function-style-cast>' : cannot convert from 'System::String ^'
لطفا اگر میشه در مورد علامت ^ و :: هم یه توضیح مختصری بدید

Nima_NF
چهارشنبه 09 اردیبهشت 1388, 01:15 صبح
textBox1->Text رشته را بر می گرداند و شما اشتباها ToString را بر می گردانید که باز یک رشته هست. باید از ToSingle یا ToDouble برای تبدیل رشته به عدد استفاده کنید:



float myfl = System::Convert::ToSingle( textBox1->Text );
double myDb = System::Convert::ToDouble(textBox1->Text);



لطفا اگر میشه در مورد علامت ^ و :: هم یه توضیح مختصری بدید
وقتی یک پروژه windows form می سازید دیگر تنها با ++C مرسوم کار ندارد، بلکه با C++/CLI برنامه می نویسید که همان نوع .NET و مدیریت شده است.

^ جایگزین * برای حافظه مدیریت شده است که برای کار با اشیا در .NET استفاده میشود.
:: نیز برای تعیین و شناساندن حوزه های تعریف شده هست، مثلا ToDouble در حوزه Convert و Convert در حوزه System هست.

kiuhnmgtrdcv
چهارشنبه 09 اردیبهشت 1388, 12:26 عصر
برنامه ای که با clr مینویسیم برای اجرا کردن در سیستمی که میخواهیم این برنامه رو نصب کنیم نیاز به فریمورک دارند ؟

Nima_NF
چهارشنبه 09 اردیبهشت 1388, 16:03 عصر
برنامه که با CLR می نویسید نیازمند نصب همان نسخه Net Framework. در سیستم کاربر هست. (به علاوه Visual C++runtime)

در ++visual C پروژه های MFC و Win32 از نوع native هستند و تنها نیازمند نصب چند فایل کم حجم تحت عنوان visual C++-runtime هست.