פורסם 2007 במאי 1718 שנים שלום לכולםאני כבר זמן מתעסק עם הסטרינגים בvisual c++ בכל אופן מישהו יודע אולי על הליך מסודר לבצע את ההמרה הנ"ל?בגדול אני רוצה לקחת את הסארניג מtextbox שהוא string^ ולהמיר אותו לטובת פונקצייה שמקבלת WHCAR* ? => LPARAM(הפונקצייה היא getwindow(תודה לעוזרים
פורסם 2007 במאי 1718 שנים אתה מדבר על C++/CLI (מה שפעם היה managed C++).אתה יכול או להעתיק את המחרוזת, או לעשות pin למצביע, כדי שה-runtime לא יזיז לך אותו.קל מאוד למצוא תשובות בגוגל. אני לא מבין כמעט כלום ב-.NET ובכל זאת מצאתי את התשובה תוך 10 שניות.http://www.google.com/search?&q=convert%20string%5E%20to%20wchar*
פורסם 2007 במאי 1718 שנים בחיפוש שזליג נתן לך יש כול מני דרכים מתחכמות לעשות את זה.אני ממליץ לך להתשמש בפונקציות של Marshal StringToHGlobalUniיעשה את העבודה.רק אל תשכח לשחרר את הפוינטר עם FreeHGlobal.
פורסם 2007 במאי 1818 שנים מחבר תודה על התשובותברור שחיפשתי קודם בגוגל. והגעתי בערך לאותם עמודים. שם גםלמדתי על StringToHGlobalUni שדווקא מקבל string^ ולא מחזיר.השאלה שלי היא יחסית פשוטה יש לי טקסט בוקס נניח בשם המפתיע textbox1 אני רוצה לשים בו משתנה מסוג wchar* איך עושים את זה?ואותה שאלה אבל הפוך כלומר כלומר לקחת את המידע מ textbox1 ולשים אותו בתוך ה *wchar .יכול להיות שאני מעט מוגבל אבל בכל זאת לא הצלחתי למתוא דומגא או הסבר בגוגל ולכן אם מישהו יודע אזי אבקש שירשום את הקוד מפורשות.באשר לכיוון אחד אני חושב שזה זה אבל ממש לא סגור כך שהערות תתקבלנה בברכה// TCHAR *text=(TCHAR *)(void*)Marshal::StringToHGlobalAnsi(textbox1->Text);תודה לכולם.
פורסם 2007 במאי 1818 שנים TCHAR *text=(TCHAR *)Marshal::StringToHGlobalAnsi(textbox1->Text);// LogicMarshal::FreeHGlobal((void*)text);והפוך:textbox1->Text = Marshal::PtrToStringAnsi((void*)text);
פורסם 2007 במאי 1918 שנים מחבר תודה רבה חברה על התשובות, למען הסדר הטוב אני ארשום פה את הקוד הסופי למען דורות עתידייםכאשר במקום char* אפשר לרשום כל סטרינג, W2SEARCH הוא טקסט בוקסchar *a = (char*) (void* )Marshal::StringToHGlobalAnsi(W2search->Text);W2search->Text = Marshal::PtrToStringAnsi( (IntPtr) a );שוב תודה רבה
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.