מה ההבדל בין בן L ל T_ בC++ ?!

alophind

New member
מה ההבדל בין בן L ל T_ בC++ ?!

לדוגמא : m_sLastName = _T("Mr. Name"); m_sLastName = L"Mr. Name";
 

linuxius

New member
תשובה

_T אין משמעות, מוסר על ידי הקומפיילר _L המרה למחרוזת UNICODE
 

cyberia2ooo

New member
ככה

בVISUAL C++ מוגדר מאקרו T_ שאומר, אם התוכנית מוגדרת כיוניקוד, תתיחס למחרוזת כאל יוניקוד, אם לא מוגדר יוניקוד, תתיחס אליה כאל מחזורת אסקי רגילה... L אומר, תתיחס למחרוזת כאל יוניקוד. T_ זה לא סטנדרט, זה לא חלק מהשפה, רק מאקרו שמוגדר ה++VISUAL C L זה כן סטנדרט של השפה
 

erezsh

New member
מתכנת "נבון"

ישתמש במה שהוא רגיל ומה שנוח לו, וייעזר ב-macros כדי ליישם את זה. נניח תוכל לכתוב בקוד:
#ifndef _T #define _T(n) n #endif​
ואז זה יעבוד בכל מקום (אם הבנתי את התפקיד שלו כראוי).
 

cyberia2ooo

New member
לא בדיוק

הקוד המתאים (אבל מיותר לחלוטין אם אתה בוחר להשתמש בו הוא)
ifdef UNICODE #define _T(n) Ln #elif #define _T(n) n #endif​
 
למעלה