עזרה ב++C עם ויזואל C++ .NET

  • פותח הנושא nvh
  • פורסם בתאריך

nvh

New member
עזרה ב++C עם ויזואל C++ .NET

היי אני לומד לתכנת בסביבת ויזואל C++ .NET ויש לי בעיות, מפני שאני לא יודע ++C טוב. בספר יש הסברים קצרצרים על מה שצריך לדעת ונוגע לנושא הנלמד, אבל עדיין אין מספיק מידע. אני יודע לתכנת ב-C אבל זה לא מאוד עוזר. התוכלו להפנות אותי למדריכים באינטרנט? אני לא צריך הסברים רחבים למתחילים. אבל אני צריך את עיקרי השפה. הכי טוב, אם יש רק מה שאני צריך כדי לתכנת בויזואל סי. יש לי גם שאלה ספציפית:
UpdateData(TRUE); m_cOutText = m_cInText; UpdateData(FALSE);​
חלק קוד זה מתממש כאשר אני לוחץ על כפתור. שני המשתנים מיוחסים לשתי תיבות טקסט. הקוד פשוט מעתיק תוכן של תיבה אחת לשניה ומעדכן. התוכלו לומר לי כיצד לעבור על המחרוזת בm_cOutText ו.. לדוגמא, לשנות כל אות 'X' ל'Y'. לאחר מכן, להעביר את השינוי לm_cInText? תודה רבה!
 

vinney

Well-known member
נו אז תעבור על הmemberים

מה המחלקה של המשתנים האלה ? אם זה CString, אז אתה יכול להשתמש בפונקציות מחרוזת רגילות, ואם זה CEdit - אז אחד הmemberים מחזיר לך את המחרוזת. רק צריך לפתוח את העיניים ולהסתכל, לא יותר.
 

nvh

New member
אממ...

תוכל לתת לי קישורים או לענות לבקשה בנושא הראשי? כי אני לא יודע איך להשתמש בפונקציות מחרוזת רגילות. כן. המחלקה היא CString. בשפת C הייתי עושה משהו כמו:
int i; char str1[30],str2[30]; ... for(i=0;str1!="\0";i++) if(str1=='X') str2 = 'Y'; else str2=str1;

אז.. תוכל לעזור לי? (קישורים, או עזרה ב"תרגום" הקוד)
 

DadleFish

New member
לגבי ++C -

אתה יכול לחפש בגוגל את ++Thinking in C של ברוס אקל. ספר מצוין ומצוי על הרשת להורדה בחינם. אחרי שתלמד ++C כמו שצריך, תתחיל ללמוד איך מתכנתים ב-WINDOWS.
 

nvh

New member
תודה.

תוכל לפחות לומר לי איך לעשות מה שביקשתי? תודה!(שוב)
 

DadleFish

New member
אני לא מכיר מספיק טוב את המחלקה

של MFC שנקראת CString, מטעמי תיעוב. בכל מקרה, אתה יכול לעשות LockBuffer כדי לקבל את המחרוזת בצורה ה-C-ית שלה, ואז לשנות אותה כרצונך. בסוף השימוש עליך לקרוא ל-UnlockBuffer. * ואם היית פותח MSDN ומחפש CString היית מוצא את זה לבד.
 

nvh

New member
אההה!!! הצלחתי

קראתי קצת, עשיתי קצת נסיונות, והתברר שזה ממש דומה לקטע שכתבתי בC. פשוט במקום:
if(m_cInText=='x') m_cOutText='y'; else m_cOutText=m_cInText;

עשיתי:
if(m_cInText=='x') m_cOutText+='y'; else m_cOutText+=m_cInText;
 

DadleFish

New member
יש בעיות עם הקוד הזה,

ספציפית, אם שני thread-ים שונים ניגשים למחרוזת בו זמנית, זה יכול להיות בעייתי.
 

vinney

Well-known member
למה?

אני חושב שMFC כולה multithreaded... אם CString מיישם את [] אני מקווה שהוא מיישם אותם כך שזה לא יקרה
 

DadleFish

New member
זה לא קשור -

עם הקוד שלו אתה יכול לגשת למחרוזת ה-OUT מכמה threadים שונים בו זמנית ולגרום לתוהו ובוהו.
 
למעלה