مشاهده نسخه کامل
: سوال در مورد Visual C++ .NET 2008
warmaster
29-05-2009, 23:11
سلام , چطوری میشه محتویات textBox رو ریخت داخل داده از نوع std::string یا charArray
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
warmaster
30-05-2009, 00:23
مشکل اینجاست که وقتی داده از نوع System::String به صورت global تعریف می کنم میگه نمی شه داده ی نوع String^ صورت global معرفی کنی
الان شما تو حالت اول str رو از نوع String در نظر گرفتی داده ی من از نوع string هستش
حالت دوم رو هم قبلا امتحان کرده بودم جواب نمیده:41:
مشکل اینجاست که وقتی داده از نوع System::String به صورت global تعریف می کنم میگه نمی شه داده ی نوع String^ صورت global معرفی کنی
الان شما تو حالت اول str رو از نوع String در نظر گرفتی داده ی من از نوع string هستش
حالت دوم رو هم قبلا امتحان کرده بودم جواب نمیده:41:
سلام من که نمیدونم مشکلت چیه چون حسن عزیز جوابتونو دادن برای تبدیل میتونی از تابع زیر هم استفاده کنی:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اگه جواب نگرفتی بیشتر توضیح بدی ممنون میشم.
سلام
چطوری میشه محتویات textBox رو ریخت داخل داده از نوع std::string یا charArray
مشکل شما از همان علامت کوچک ^ ناشی میشود.
در نسخه VC++.Net2005 به بعد، تعریف متغییر ارجاعی به class های مدیریت شده دات نت نیاز به این علامت دارد.یعنی...
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
نتیجتاً شما باید در تعریف متغیر نوعهای Class بعد از نام Type از یک علامت ^ استفاده کنید.
ولی برای متغییرهای نوعهای Struct نیازی به عمل فوق نیست.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
=====
مشکل اینجاست که وقتی داده از نوع System::String به صورت global تعریف می کنم میگه نمی شه داده ی نوع String^ صورت global معرفی کنی
اگر منظورتان از global آن است که متغییری (و ترجیحاّ تابع و متد) را در خارج از یک ساختار Class یا Struct تعریف کنید.
این کار مخالف اصول کدهای مدیریت شده و شی گرایی دات نت است.
تمام متغییرها (و ترجیحاّ توابع) شما بلااجبار باید در یک ساختار Class یا Struct قرار داشته باشند.
به راحتی بک public ref class بنویسید و یک کلاس را شروع کنید و یا در project->AddClass یک کلاس اضافه کنید و سپس درون بدنه ان کدنویسی کنید.
سعی کنید تفکر منسجم شی گرایی داشته باشید و کدهای خود را به واحدهای صحیح namespace و class و method بشکنید.
=====
الان شما تو حالت اول str رو از نوع String در نظر گرفتی داده ی من از نوع string هستش
نوعی به نام string (حروف کوچک) در VC++.Net وجود ندارد.
فقط نوع String را دارید که در واقع System::String است و باید در تعریف متغیرش از ^ استفاده کنید.
=====
حالت دوم رو هم قبلا امتحان کرده بودم جواب نمیده
منظورتان را از حالت دوم درست متوجه نشدم ولی بیتردید کدهای زیر در VC++.Net2005/2008 به درستی و بدون مشکل کامپایل خواهد شد.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشید.
warmaster
31-05-2009, 14:13
ه راحتی بک public ref class بنویسید و یک کلاس را شروع کنید و یا در project->AddClass یک کلاس اضافه کنید و سپس درون بدنه ان کدنویسی کنید
من این کار رو کردم یک سری از مشکلات بر طرف شد , یک کلاس تعریف کردم و بعضی از داده های کلاس رو از نوع String ^ تعریف کردم
حالا اگه بخوام از این کلاس شی بسازم بطوریکه بشه در تمام فایل های برنامه ازش استفاده کرد , شی رو کجا باید تعریف کنم؟
سلام
حالا اگه بخوام از این کلاس شی بسازم بطوریکه بشه در تمام فایل های برنامه ازش استفاده کرد , شی رو کجا باید تعریف کنم؟
اکثریت (و به نظر من همه!) افرادی که همچین درخواستهایی در شروع برنامه نویسی دارند، بدون تردید، دارند به الگوریتم های غیر صحیحی و روشهایی قط برای فرار سریع از مشکل همان لحظه فکر میکنند.
نه اینکه کار نمیکند، کار میکند ولی این طرز تفکر صحیح نیست و شما باید برنامه و روش و الگوریتمتان ار طوری اصلاح کنید که نیازی به این متغیرهای اشتراکی در سرتاسر برنامه نداشته باشید.
(البته در برنامه نویسی حرفه ای هم از این نوع کدها استفاده میشود ولی در جای صحیح و لازمش، من تاحالا ندیدم افرادی که در شروع کار همچین سوالاتی میپرسند در جای درست و لازم از این تکنیک استفاده کنند.)
مثلاً خیلیها میخواهند دیتایی را بین دو فرم برنامه منتقل کنند و این راه را پیش میگیرند ولی ...
یا ...
پیشنهاد میکنم، شما بفرمائید برای چه این متغییرها را لازم دارید تا من راه منطقی و اصولی تری به شما برای حل مشکلتان پیشنهاد کنم.
به عنوان یک راه ساده، حداقل اگر برنامه تان یک فرم دارد، متغییرهای فوق را درون بدنه کلاس فرم معرفی کنید.
=====
به هرحال جواب:
قبل از تعریف متغییرتان از کلمه static استفاده کنید، دیگر نیازی به نمونه سازی (new) کلاس نخواهید داشت.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
=====
موفق باشید.
warmaster
01-06-2009, 14:14
واقعا از شما متشکرم که وقت گذاشتید و به سوالات من پاسخ دادید , راستش من دانشجوی ترم 2 هستم و تازه class ها رو آخر ترمی بهمون یاد دادن و تازه دارم اینو یاد می گیرم
سعی کنید تفکر منسجم شی گرایی داشته باشید و کدهای خود را به واحدهای صحیح namespace و class و method بشکنید.
یک پروژه به ما دادن برای پایان ترم (سیستم کتابخانه) و من هم چون می خوام پروژهی رو که می نویسم همیشه با همه فرق بکنه و از همه بهتر باشه , visual بسازم
ترم 1 این اتفاق افتاد و پروژه پایان ترم رو که باید با زبان پاسکال می نوشتیم رو با دلفی نوشتم و نمره ی اضافه گرفتم
وقتی یک برنامه نویس حرفه ای پروژم رو دید گفتش که برنامه سازی الان در مرحله ی قرار داره به نام Service Programming الان این کدهای رو که تو نوشتی مربوط میشه به مرحله ی که 20 ساله پیش برنامه سازی در اون قرار داشت.
حالا من فعلا نمی خوام خیلی حرفه ی پروژه رو بنویسم فقط می خوام visual باشه.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.