char * 转LPCTSTR若干方法
如何將char* 轉(zhuǎn)換為L(zhǎng)PCTSTR??
rainForestBache (百奇)???? 2004-10-19 20:17:48 在 VC/MFC / 基礎(chǔ)類 提問(wèn)
請(qǐng)多多指教
問(wèn)題點(diǎn)數(shù):20、回復(fù)次數(shù):10
1樓? stephen_young?? ()?? 回復(fù)于 2004-10-19 20:33:45? 得分 5?
實(shí)際上將char*轉(zhuǎn)換成CString對(duì)象就成了.???
? char*?? p?? =?? "aaaa";???
? CString?? s?? =?? p;//或???
? CString?? m(p);???
????
? LPCTSTR?? lp?? =?? (LPCTSTR)s;//?? LPCTSTR?? lp?? =?? (LPCTSTR)m;???
????
? 這兩句都行。
Top
2樓? rainForestBache?? (百奇)?? 回復(fù)于 2004-10-19 20:34:34? 得分 0?
除了用CString?? 還有什么辦法么????
?
Top
3樓? fanqing?? (火影忍者+28%(準(zhǔn)備學(xué)習(xí)進(jìn)程/線程))?? 回復(fù)于 2004-10-19 20:34:46? 得分 5?
CString?? dd="fanqing";???
? dd.getbuffet(10);
Top
4樓? BestBear?? (天外飛熊)?? 回復(fù)于 2004-10-19 20:37:28? 得分 5?
1>?? char*轉(zhuǎn)換成CString???
????
? 若將char*轉(zhuǎn)換成CString,除了直接賦值外,還可使用CString::Format進(jìn)行。例如:???
????
? char?? chArray[]?? =?? "This?? is?? a?? test";???
? char?? *?? p?? =?? "This?? is?? a?? test";?????
????
? 或???
????
? LPSTR?? p?? =?? "This?? is?? a?? test";?????
????
? 或在已定義Unicode應(yīng)的用程序中???
????
? TCHAR?? *?? p?? =?? _T("This?? is?? a?? test");?????
????
? 或???
????
? LPTSTR?? p?? =?? _T("This?? is?? a?? test");???
? CString?? theString?? =?? chArray;???
? theString.Format(_T("%s"),?? chArray);???
? theString?? =?? p;?????
????
? 2>CString???? to?? LPCTSTR?????
? LPCTSTR?? lpText;???
? CString?? str;???
? str.Format("%d",a);???
? lpText?? =?? (LPCTSTR)str;???
?
Top
5樓? rainForestBache?? (百奇)?? 回復(fù)于 2004-10-19 20:41:38? 得分 0?
非常感謝以上各位stephen_young()?? ,?? fanqing(宇繁),BestBear(天外飛熊)???
? 但是小弟不想使用CString類庫(kù),還有其他的辦法么????
?
Top
6樓? rainForestBache?? (百奇)?? 回復(fù)于 2004-10-19 20:49:41? 得分 0?
我想開發(fā)一個(gè)WINCE的網(wǎng)絡(luò)程序,使用API和socket2函數(shù),???
? char?? hostname[100];???
? int?? len;???
? len?? =?? 100;???
? memset(&hostname[0],'\0',100);???
? if(gethostname(&hostname[0],len)==0){???
? SetWindowText(GetDlgItem(g_hwndMyDialog,IDC_EDIT1),&(hostname[0]));???
? }???
? else{???
? SetWindowText(GetDlgItem(g_hwndMyDialog,IDC_EDIT1),_T("error"));???
? break;???
? }???
????
? 以上程序由于gethostname必須使用char*?? ,而SetWindowsText又是使用LPCTSTR,因此必須轉(zhuǎn)換。???
????
?
Top
7樓? huwei001982?? (編程浪子)?? 回復(fù)于 2004-10-19 20:54:52? 得分 5?
啊???
????
? char?? *p?? =?? "dfkdslf"???
? LPCTSTR?? d?? =?? (LPCTSTR)p;???
????
? 不行嗎
Top
8樓? huwei001982?? (編程浪子)?? 回復(fù)于 2004-10-19 20:55:55? 得分 0?
更正樓上,???? char?? *p?? =?? "dfkdslf";?? //掉了一個(gè)分號(hào)???? ;
Top
9樓? rainForestBache?? (百奇)?? 回復(fù)于 2004-10-19 21:09:32? 得分 0?
huwei001982(編程浪子)?????
? char?? *p?? =?? "dfkdslf"???
? LPCTSTR?? d?? =?? (LPCTSTR)p;???
? 這樣子不行,LPCTSTR實(shí)際上為unsigned?? short?? *,以2byte為單位,而char?? *以1個(gè)byte?? 為單位。
Top
10樓? rainForestBache?? (百奇)?? 回復(fù)于 2004-10-19 21:36:08? 得分 0?
謝謝以上各位,問(wèn)題解決了,最后只能用最笨的辦法。???
? BOOL?? LPCSTR2LPTSTR(LPCSTR?? str,LPTSTR?? wstr)???
? {???
? int?? l,i;???
? l=strlen(str);???
? for?? (i=0;i<=l;i++)wstr[i]=str[i];???
? return?? TRUE;???
? };???
????
? 如果各位有更好的辦法,請(qǐng)發(fā)消息給我。???
? 再次謝謝各位。?
總結(jié)
以上是生活随笔為你收集整理的char * 转LPCTSTR若干方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: WinCE流设备驱动简介及GPIO驱动的
- 下一篇: C++设计模式之三 单例模式